servlet 创建/生命周期-单例模式/session唯一/会话超时
来源:互联网 发布:mac pscs6破解安装教程 编辑:程序博客网 时间:2024/05/23 23:03
servlet的创建于java类的创建相同,需要提几点注意:
1.在servlet创建时,display,description设置为空
2.Servlet/JSP Name:是你的servlet命名称。
3.Servlet/JSP Mapping URL:是浏览器访问地址,通常只设置成“/自己的servlet名称”就行。
servlet创建好之后,我们看下它的xml文件信息:
文件中需要提几点注意,用注释写出来了:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>HelloServlet</servlet-name><!--此处名字必须和下面的一样 --> <servlet-class>web.HelloServlet</servlet-class><!--这是文件位置 --> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <!--此处名字必须和上面的一样 --> <url-pattern>/HelloServlet</url-pattern><!--这是浏览器中的地址名字,注意在此加上/--> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file><!--这是欢迎页面,如果没有在地址栏写出要进helloservlet,那么就进来此处 --> </welcome-file-list></web-app>
同时在NewServlet.java文件中,我们也需要注意以下几点:
如果用到中文,必须将注释的两行写上。因为原始是没有的这些代码的。
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");//如果要使用中文,必须添加这一行,response.setContentType("text/html;charset=utf-8");//同时在这一行的值中添加charset=utf8PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(" This is ");out.print(" This is ");out.print(" This is ");out.print(" This is ");out.print(this.getClass());out.println(", using the GET method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();}
这样,我们就创建好Servlet了。
在浏览器中敲入localhost/项目名/NewServlet即可看到上面一个代码所编写出来的页面。如果不敲入/NewServlet,则默认进入index.jsp页面
需要注意的是
1.doGet方法和doPost方法其实是可以和合二为一的,但是为了区分Psot传值和Get传值,需要分别写代码,但为方便,两个方法中写一样的代码就行。
或者用在doGet方法中写上
doPost(request, response);
2.Servlet中没有内置对象。
request和response对象在doGet和doPost方法已经创建:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {我们还需要自己创建session对象:
HttpSession session=request.getSession();简言之,我们在创建Servlet对象的时候,
因该基本都会先写上:
doPost(request, response);HttpSession session=request.getSession();request.setCharacterEncoding("utf-8");//如果要使用中文,必须添加这一行response.setContentType("text/html;charset=utf-8");//同时在这一行的值中添加charset=utf8
Servlet生命周期--单例模式:
在创建下一个对象的时候,不会再创建新的Servlet对象,而是用已经创建的来实现Post or Get方法。
这叫单例模式。
Servlet中session的参数:
这样的好处就是程序可以允许用户正常通过JSP访问,但是不允许直接访问Servlet。
HttpSession session=request.getSession();/*true或者无参 如果有相关对象(session),返回相关联对象, * 否则创建一个session对象 * * false 如果有相关对象(session),返回相关联对象, * 否则返回null * */
其实,Servlet创建每个session都是唯一的。我们可以通过
<%=session.getId() %>来查看我们的sessionID
其次,我们也要设置一个session会话超时登出设置,这个设置在web.xml中:
<session-config><!-- session超时登出设置 --> <session-timeout>30</session-timeout> </session-config>
- servlet 创建/生命周期-单例模式/session唯一/会话超时
- session会话超时问题
- Singleton Session Pattern (单实例会话模式)
- Session超时,唯一性
- Servlet Session(会话)
- servlet 单例模式
- Servlet--Session生命周期
- Servlet会话Cookie和Session
- Servlet(16)会话技术Session
- servlet会话技术Cookie&Session
- servlet会话技术Cookie,Session
- 设计一个只能创建一个唯一实例的类——单例模式
- ASP.NET会话丢失,Session超时配置
- 单例模式Singleton 你是唯一
- Servlet多线程单例模式
- 创建模式->单例模式
- servlet、session、jsp的生命周期
- cookie,session,servlet的生命周期
- 服务器编程入门(8)多进程编程
- C++基础2
- IOS开发:NSDateFormatter的问题
- yaffs2与mtd之间的连接
- tftp相关操作命令
- servlet 创建/生命周期-单例模式/session唯一/会话超时
- OpenCV移植到OMAP3730平台全过程
- 网页设计常用色彩搭配表
- 根据二叉树的前中序确定唯一的二叉树
- PureFTPd+Mysql+PHP_Manager实现虚拟用户磁盘限额
- sdut2767 翻转排序
- String的格式化处理
- 黑马程序员----IO(一)
- Joy Catalog