Servlet笔记

更新时间:2023-12-23 18:29:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Servlet开发流程

1. 在tomcat下的webapps中新建一个项目文件夹A,接着在A中新建一个WEB-INF文件

夹,在其中写一个web.xml,建立一个classes和lib的文件夹,在root中拷贝一个web.xml。 a) classes类文件夹 lib是存放jar包的 2. 开发servlet(引入servlet-api.jar(在tomcat中commt中lib中))servlet周期 3. 部署servlet 在web.xml中部署配置文件

a) 给servlet的名字 指明servlet的路径(包+类 [com.tsinghua.hello]) 给servlet的名字 浏览器中输入的访问该servlet的url 4. 启动tomcat访问servlet

servlet周期

1. 转载servlet在服务器中,实例一个servlet实例。

2. 调用 init() 用于初始化servlet ,只被调用一次(当用户第一次访问该servlet时) 3. 调用服务 service() 用于处理业务逻辑,业务逻辑代码写在这里,当用户每访问该servlet

时都会被调用

a) request 用于获得客户端的信息

b) response 用于向客户端返回信息

i. PrintWriter pw = res.getWriter();

pw.println(“ ”);

4. 销毁 destroy() 销毁servlet实例(释放内存),何时调用:1.reload 该serlvet 2.关

闭tomcat 3.关机

servlet实现方法

1. 实现servlet借口 a) servlet周期

2. 继承GenericServlet类

a) 重写此类中的service方法 3. 继承HttpServlet类

a) 重写doGet 和doPost 方法

b) 俩者合二位一

i. 在doPost方法中写入 this.doGet(req,res); c)

在doGet方法中实现业务逻辑 i. 跳转页面方法

1. res.sendRedirect(“目的页面的url”);

同一用户共享不同页面的数据

1. cookie

a) 创建一个cookie

i. Cookie cookie = new Cookie(String name, String val);

b) 如何将一个Cookie添加到客户端 i. response.addCookie(); c)

如何读取一个cookie(从客户端读到服务器) i. response.getCookie(); i.

request.getCookie();

d) 如何得到cookie

2. sendRedirect(“welcome?uname=shunming&upsw=123”);形式 a) 在目的页面用req.getParameter(“uname”);来接受数据

3. 隐藏表单

4. Session

a) 一个用户,服务器会分配一个session空间用 默认时间(间隔时间:只要有操作就会

重新计时)是30mins(在web.xml中Session-config中设置时间) b) 得到session

i. HttpSession hs = request.getSession(true); c)

修改session时间 i. hs.setMaxInactiveInterval( 单位是秒 );

d) 向session添加属性 i. hs.setAttribute(String name, Object val); e) 从session中得到属性

i. String val = hs.getAttribute(String name); f)

从Session中删除某个属性 i. hs.removeAttribute(String name);

5. cookie 与 Session的比较

a) 保存位置不同 cookie保存在客户端,session保存在服务器端 b) 安全性 cookie比session安全性弱

c) 网络传输量 cookie通过网络传输给服务器,Session不需要传输

d) 生命周期 cookie周期从创建开始计时,session是在周期内如果有访问过

session则重新计时。浏览器关闭cookie就消失了,session是到时间才消失。

分页技术

1. 定义四个变量

a) pageSize 每页显示多少记录 b) pageNow 希望显示第几页 c) pageCount 一共有多少页 d) rowCount 一共有多少条记录 2. 解决分页sql语句

a) SQL Server 语句:select top pageSize 字段名列表 from 表名 where id

not in(select top pageSize*(pageNow-1) id from 表名); b)

3. 分页步骤

a) 定义四个变量 b) 得到rowCount c) 计算pageCount i. if(rowCount%pageSize == 0){

pageCount = rowCount/pageSize;

}else{ } i. ii.

pageCount = rowCount/pageSize+1;

d) 给?赋值 1,2 代表第几个问号 后面代表输入的值

ps.setInt(1,pageSize);

ps.setInt(2,pageSize*(pageNow-1));

e) 显示页数的超链接 i.

for(int i=pageNow; i

pw.println(“”+ i +””); }

servletContext

1. 如何得到ServletContext

a) ServletContext sc = this.getServletContext(); 2. 3. 4. 5.

添加属性 setAttribute(String name, String val); 得到属性 getAttribute(String name); 生命周期 服务器关闭就消失

存在ServletContext中的数据时间太长,占用服务器内存太大,大数据不要用ServletContext。

本文来源:https://www.bwwdw.com/article/z965.html

Top