六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 49|回复: 0

Servlet小结

[复制链接]

升级  70%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
35
 楼主| 发表于 2013-2-7 15:22:30 | 显示全部楼层 |阅读模式
Servlet总结
一、Servlet 基本概念
1、Servlet和Servlet容器
Servlet规范两方面
1)规定了Servlet如何写
2)规定了Servlet应该运行的环境

Servlet生命周期
init、destory、service(doPost/doGet)
init,destory只会执行一次
service方法根据请求信息调用不同的doXxx()方法

Servlet配置
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>

2、Servlet单实例多线程
servlet在运行时只会有一个对象,但是service方法是一个请求分发一个service,即多线程访问。
在service方法中注意线程同步问题。
注意线程同步的问题(参见代码)

二、Servlet 核心API
1、HttpServletRequest request

String getParameter(String)
获得普通表单提交的数据/请求参数

String[] getParameterValues(String) 针对于checkbox

HttpSession request.getSession()
根据request中的SessionID获取Session对象
或者创建新的Session对象

HttpSession getSession(boolean blag) blag为false时session不存在时返回null

void request.setCharacterEncoding(String charset)

Cookie[] request.getCookies() 获得客户端Cookie数组

request.getRequestDispatcher("uri").forward(request, response)转发 request携带数据

request.setAttribute(String, Object)
Object request.getAttribute(String)

2、HttpServletResponse response

response.setContentType(String)
设置响应数据的类型
response.setContentType("text/html;charset=utf-8")
response.setContentType("image/jpeg");

PrintWriter out=response.getWriter();
返回用于响应文本信息的流对象

OutputStream getOutputStream();
返回用于响应二进制信息的流对象

sendRedirect(String uri)
送回一个重定向响应给客户端,客户端根据地址重新发get请求至服务器

void addCookie(Cookie cookie)

3、Cookie
set/get Name
set/get Value
set/get Path
set/get MaxAge

4、HttpSession
getId()
invalidate()
setMaxInactiveInterval(int second)
setAttribute(String, Object)
Object getAttribute(String)

5、ServletContext
set/get Attribute
String getRealPath(String)

6、ServletConfig
String getInitParameter(String)

作用范围:ServletContext整个应用有效,Session在一个有效会话内有效,request在一次请求转发之间有效。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表