JAVASE基础知识六——servlet、jsp

1、servlet作为后端java代码,是用来接收请求,处理请求,为浏览器做出响应

2、servlet的生命周期:表示servlet对象从创建到销毁的全过程
(1)当我们的浏览器发送的请求,用到了指定servlet类的时候,那么服务器(创建对象时,服务器也叫做容器)会自动的new出来一个这个指定的servlet类的对象。(这个servlet对象是以单例形式存在在服务器中,当浏览器第2~n次访问该路径的时候,就不重新new新对象了,而是使用第一次访问时创建的对象(注意:多线程并发时是单例多线程))
(2)servlet对象创建完毕之后,servlet对象会马上调用init方法,执行对象的初始化工作
(3)当我们每一次发送请求的时候,serlvet对象调用doGet/doPost方法来处理请求
(4)当服务器关闭,servlet对象销毁
(5)servlet对象销毁之前,调用destroy方法

3、copy项目及修改项目名的注意事项
JAVASE基础知识六——servlet、jsp
4、重定向:[响应对象].sendRedirect(“地址”)
1)通过重定向可以访问资源范围非常广泛
其它服务器的网站
同一个服务器中的不同网站
同一个服务器中同一个网站资源
2)重定向时第二次发送的请求由于是通过浏览器地址栏发送,因此请求方式只能是Get
3)重定向是发生在客户端,重定向时,关联的Java应用程序是不能依靠[请求对象]进行数据共享

5、转发
RequestDispatcher 资源定位器对象 =[请求对象].getRequestDispatcher(“类B地址”);
[资源定位器对象].forward();//将资源定位请求发送Tomcat
1)请求转发调用时调用资源文件只能是当前网站内部资源文件,不能访问其他网站的资源文件
2) 由于请求转发是发生在服务器端,所以客户端浏览器上不会显示通过请求转发所调用的资源文件地址
3) 在请求转发过程中,[被请求转发调用的资源]接收的请求方式与[发送 请求的资源]文件接收的请求方式是一致
4) 在请求转发过程中,涉及的所有资源文件都可以使用请求对象共享数据

6、域对象

上下文域 application ServletContext
会话域 session HttpSession
请求域 request HttpServletRequest

7、HttpServletRequest接口和HttpServletResponse常用方法总结
(1)request常用方法

方法 说明
request.getParameter(String) 接收get/post请求的参数
request.setAttribute(String, Object) 在request域存值
request.getAttribute(String) 从request域取值
request.removeAttribute(String) 从request域移除值
request.getMethod() 取得请求方式 GET/POST
request.getContextPath() 取得 /项目名
request.getRequestURI() 取得请求的绝对路径,注意:这个绝对路径是我们开发时使用的绝对路径(不带有协议ip端口号的)
request.getRequestURL() 取得请求的绝对路径,注意:这个绝对路径的全路径(带有协议ip和端口号的)
request.getRemoteAddr() 取得浏览器端的ip地址,注意:如果访问本机,那么ip地址为0和1
request.getServletPath() 取得url-pattern
request.getCookies() 取得浏览器请求中携带的所有的cookie对象
request.setCharacterEncoding(arg0) 设置参数的字符编码,仅针对post请求有效
request.getSession() 创建/取得 一个session对象
request.getParameterValues(arg0) 如果提交的参数key相同,value不同,例如表单中的复选框,那么我们使用该形式来接收参数

(2)response常用方法

方法 说明
response.addCookie(arg0) 服务器为浏览器响应时,携带一个cookie对象
response.addHeader(arg0, arg1) 添加响应头信息
response.setHeader(arg0, arg1) 设置响应头信息
response.getWriter() 返回响应流对象PrintWriter out
response.sendRedirect(arg0) 重定向
response.setContentType(arg0) 响应流,如果响应中文,那么需要通过此代码设置响应流的字符编码

8、jsp的九大内置对象

内置对象 类型
out jsp输出对象 JspWriter
request 请求对象 HttpServletRequest
response 响应对象 HttpServletResponse
session 会话对象 HttpSession
exception Throwable
page jsp文件实例对象 当前Servlet(this)
config Servlet配置对象 ServletConfig
application 全局作用域对象 ServletContext
pageContext 当前页上下文环境对象,(1)定位当前jsp文件所有的内置对象(2)pageContext添加数据只能在当前jsp文件被读取其它jsp文件无法读取到 PageContext

9、jsp文件四大作用域对象

对象 说明
application 全局作用域对象
session 会话作用域对象
request 请求作用域对象
pageContext 当前页作用域对象

10、EL
JAVASE基础知识六——servlet、jsp