Servlet常用的六个对象
2017-08-02 21:45
134 查看
一.ServletConfig
该类对象可以读取init-param中的初始化数据。(为某一个servlet配置初始化参数)
web.xml配置文件
java 代码
二.ServletContext
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用,是一个全局的环境变量。该应用中的任何组件,在任何时候都可以访问到该对象,所以Servlet上下文具有唯一性。
1.利用该对象实现多个servlet直接的数据共享,如下案例
在demo1中为servletContext添加属性data值为hello,在demo2中对添加的数据进行读取。
Demo:
3.读取资源文件
三.response
1.当servlet向客户端发送中文字符时会出现乱码 原因是服务器将数据给resoponse时,res解码方式为iso-8859-1,解决方式:
设置response解码方式: res.setCharacterEncoding("utf-8");
response将数据给浏览器时,设置浏览器读取内容的编码格式
res.setContentType("text/html;charset=utf-8");
这两句写一句即可。
2.实现重定向
response.sendRedirect();原理 302状态码+location
使用场景:登录后跳转至首页,购物后跳转至购物车页面
四。request
1.处理post方式提交中文参数值,服务器接收时需声明request.setCharEncoding("utf-8)
2.处理get方式提交中文参数值,服务器接受到参数name后new String(name.getBytes("iso-8859-1"),"utf-8");
3.转发绑定数据:request.setAttribute("data","xxxxx");
req.getRequestDispatcher("find.jsp").forward(req, res);
完成数据的传递。
五.Cookie
Cookie是客户端技术,程序把每个用户的数据以cookie形式写个浏览器,当用户以浏览器去访问服务器时就会带着各自的数据去访问。
案例:显示浏览器上次访问时间
res.setCharacterEncoding("utf-8");
res.setContentType("text/html;charset=utf-8");
PrintWriter pw = res.getWriter();
pw.println("你上次访问时间是:");
//获得用户cookie
Cookie []cookies = req.getCookies();
for(int i=0;cookies!=null&&i<cookies.length;i++){
if(cookies[i].getName().equals("lastAccessTime")){
String t = cookies[i].getValue().trim();
long cookieValue = Long.parseLong(t);
Date date = new Date(cookieValue);
pw.println(date.toLocaleString());
}
}
//返回给用户最新的时间
long time = System.currentTimeMillis();
Cookie cookie = new Cookie("lastAccessTime",String.valueOf(time));
cookie.setMaxAge(5);
cookie.setPath("/TestCookie");
res.addCookie(cookie);
注:
浏览器一般最多可以存300个cookie,每个站点存20个,过多会清除不常用的cookie,每个cookie限制大小4KB
cookie默认有效时间为本次回话,浏览器关闭即cookie消失
六 Session
session是服务器端的技术,服务器在运行时可以为每个用户的浏览器创建一个session对象为用户浏览器独享,用户可以将数据存放于session中,访问web时可以从中取出数据
注意:session在30分钟 后若没人使用则服务器自动销毁
案例:在一个servlet中添加一个sesiion在另一程序中获取
HttpSession session= req.getSession();
session.setAttribute("name","张三");
HttpSession session= req.getSession();
String name = (String)session.getAttribute("name");
移除session:
session.removeAttribute("name");用于注销登录
session销毁:
1. <session-config>
<session-timeout>10</session-timeout>
</session-config>
如上在配置文件中设置session的销毁时间为10分钟
2.利用代码销毁session
session.invalidate();
该类对象可以读取init-param中的初始化数据。(为某一个servlet配置初始化参数)
web.xml配置文件
<servlet> <display-name> </display-name> <servlet-name>demo1</servlet-name> <servlet-class>web.demo1</servlet-class> <init-param> <param-name>data</param-name> <param-value>xxxxx</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>demo1</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping>
java 代码
public class demo1 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String value = this.getServletConfig().getInitParameter("data"); System.out.println(value); } }若要读取多个参数则用 这个方法: this.getServletConfig().getInitParameterNames();返回一个参数名的枚举列表,遍历获取参数名然后读取值。
二.ServletContext
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用,是一个全局的环境变量。该应用中的任何组件,在任何时候都可以访问到该对象,所以Servlet上下文具有唯一性。
1.利用该对象实现多个servlet直接的数据共享,如下案例
在demo1中为servletContext添加属性data值为hello,在demo2中对添加的数据进行读取。
Demo:
public class Demo1 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String data="hello"; this.getServletContext().setAttribute("data", data); } }
public class Demo2 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String value=(String) this.getServletContext().getAttribute("data"); System.out.println(value); } }2.servletContext可以为整个web应用配置初始化参数,在程序中可以直接读取这些参数值。
<context-param> <param-name>data</param-name> <param-value>xxxxx</param-value> </context-param>读取方式与servletConfig大同小异。
3.读取资源文件
三.response
1.当servlet向客户端发送中文字符时会出现乱码 原因是服务器将数据给resoponse时,res解码方式为iso-8859-1,解决方式:
设置response解码方式: res.setCharacterEncoding("utf-8");
response将数据给浏览器时,设置浏览器读取内容的编码格式
res.setContentType("text/html;charset=utf-8");
这两句写一句即可。
2.实现重定向
response.sendRedirect();原理 302状态码+location
使用场景:登录后跳转至首页,购物后跳转至购物车页面
四。request
1.处理post方式提交中文参数值,服务器接收时需声明request.setCharEncoding("utf-8)
2.处理get方式提交中文参数值,服务器接受到参数name后new String(name.getBytes("iso-8859-1"),"utf-8");
3.转发绑定数据:request.setAttribute("data","xxxxx");
req.getRequestDispatcher("find.jsp").forward(req, res);
完成数据的传递。
五.Cookie
Cookie是客户端技术,程序把每个用户的数据以cookie形式写个浏览器,当用户以浏览器去访问服务器时就会带着各自的数据去访问。
案例:显示浏览器上次访问时间
res.setCharacterEncoding("utf-8");
res.setContentType("text/html;charset=utf-8");
PrintWriter pw = res.getWriter();
pw.println("你上次访问时间是:");
//获得用户cookie
Cookie []cookies = req.getCookies();
for(int i=0;cookies!=null&&i<cookies.length;i++){
if(cookies[i].getName().equals("lastAccessTime")){
String t = cookies[i].getValue().trim();
long cookieValue = Long.parseLong(t);
Date date = new Date(cookieValue);
pw.println(date.toLocaleString());
}
}
//返回给用户最新的时间
long time = System.currentTimeMillis();
Cookie cookie = new Cookie("lastAccessTime",String.valueOf(time));
cookie.setMaxAge(5);
cookie.setPath("/TestCookie");
res.addCookie(cookie);
注:
浏览器一般最多可以存300个cookie,每个站点存20个,过多会清除不常用的cookie,每个cookie限制大小4KB
cookie默认有效时间为本次回话,浏览器关闭即cookie消失
六 Session
session是服务器端的技术,服务器在运行时可以为每个用户的浏览器创建一个session对象为用户浏览器独享,用户可以将数据存放于session中,访问web时可以从中取出数据
注意:session在30分钟 后若没人使用则服务器自动销毁
案例:在一个servlet中添加一个sesiion在另一程序中获取
HttpSession session= req.getSession();
session.setAttribute("name","张三");
HttpSession session= req.getSession();
String name = (String)session.getAttribute("name");
移除session:
session.removeAttribute("name");用于注销登录
session销毁:
1. <session-config>
<session-timeout>10</session-timeout>
</session-config>
如上在配置文件中设置session的销毁时间为10分钟
2.利用代码销毁session
session.invalidate();
相关文章推荐
- servlet的工作原理及常用对象
- Servlet开发常用对象
- Servlet中常用对象及API类之间的关系
- HttpServletRequest对象常用功能_动力节点Java学院整理
- Struts2对常用Servlet对象的获取
- HttpServletRequest对象的常用方法
- HttpServletRequest对象中的常用个的方法
- ASP.NET 常用五大对象总结
- JavaScript中的BOM和DOM和常用对象
- javascript--DOM对象模型的常用操作属性和方法
- Servlet的四个重要对象
- ServletConfig对象,ServletContext对象应用
- js Array对象的常用方法总结
- jsp九大内置对象及常用方法和详细方法
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期
- PHP面向对象常用关键字整理
- As中获取对象类名的常用方法
- ORACLE 常用的SQL语法和数据对象
- Servlet方法中的常用五大方法浅析
- servlet涉及对象(补充)