jsp课堂笔记5 Java servlet
-
servlet的创建
-
servlet类就是一个包含javax.servlet.http包中的HttpServlet类
-
部署web.xml文件
-
在<sevlet>标签中创建
-
<servlet-name>创建servlet的名字
-
<servlet-class>标记用哪一个类来创建servlet
-
在<servlet-mapping>中创建请求该servlet的URL
-
<servlet-name>已经创建的servlet的名字
-
<url-pattern>/设置URL路径
-
servlet工作原理
-
servlet是javax.servlet包中HttpServlet类的子类的一个实例、由服务器负责创建并完成初始化工作。当多个用户请求一个servlet时,服务器为每个用户启动一个线程而不是启动一个进程,这些线程由服务器来管理,与传统的CGI为每个用户启动一个进程相比较,效率要高的多。
-
初始化servlet ,在servlet子类中重写init();只在第一次使用servlet时调用
-
service(); 响应用户对servlet的请求,不同用户请求会在多线程中调用,互不影响
-
destroy(); 当服务器终止服务时,比如关闭服务器等,destroy()方法会被执行,消灭servlet。
-
jsp页面访问servlet:
-
如果web.xml文件中<servlet-mapping>标记的子标记<url-pattern>指定的请求servlet的格式是“/lookHello”,那么JSP页面请求servlet时,必须要写成 “lookHello”,不可以写成“/lookHello”,否则将变成请求root服务目录下的某个servlet。
-
共享变量:对于Servlet类所创建的servlet的,用户将共享该servlet的成员变量
-
doGet和doPost:可以在Servlet类中重写doPost或doGet方法来响应用户的请求,这样可以增加响应的灵活性,并降低服务器的负担。
-
doGet和doPost可以让servlet更加灵活,也就是原本的service函数的更细化
-
如果service和doGet和doPost同时存在,那么直接调用的是service
-
重定向与转发
-
重定向:response.sendRedirect("2.jsp");
-
转发:
-
得到RequestDispatcher对象:RequestDispatcher dispatcher=request.getRequestDispatcher("4.jsp");
-
转发:dispatcher.forward(request,response);
-
重定向和转发的区别可以看为是
-
重定向只是对处理结果后返回的页面,返回的页面没有get或post请求,就像登录成功后跳转到首页
-
转发是指把请求转移到另一个页面,也就是说改个URL而已,真正的被隐藏了
-
session
-
HttpSession session=request.getSession(true); //获取用户的session对象
-
浪波激泥