java语言编写动态资源的开发技术,普通的java类
Forward
在服务器端完成的;重定向redirection
是在客户端完成的"."代表tomcat/bin目录,不能再web项目中使用
<%@ page isThreadSafe=”false”%> 默认值为true
https://blog.csdn.net/john2522/article/details/7467983
<servlet>
<!-- servlet的内部名称 ,可以自定义-->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet类名: 包名+简单类名-->
<servlet-class>gz.itcast.d_servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet的内部名称,和上面的名称保持一致!!!-->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet的访问名称: /名称 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
简单总结
只要访问Servlet,service()就会被调用。
init()只有第一次访问Servlet的时候才会被调用。
destroy()只有在Tomcat关闭的时候才会被调用。
默认是第一次访问时加载,改变servlet的加载时机可以提前到加载web应用时创建
配置servlet时添加<load-on-startup>1</load-on-startup>
,tomcat启动时会加载此类,越小优先级越高
请求行
request.getMethod(); 请求方式
request.getRequetURI() / request.getRequetURL() 请求资源
request.getProtocol() 请求http协议版本
请求头
request.getHeader("名称") 根据请求头获取请求值
request.getHeaderNames() 获取所有的请求头名称
**实体内容**
```java
request.getInputStream() 获取实体内容数据
获取请求参数
request.getParamerter(参数名): 获取一个值的参数
request.getParamerterValue(参数名):获取多个值的同名参数,如select元素值
request.getParamerterNames(): 获取所有参数名称列表
设置请求参数的编码格式
request.setCharacterEncoding("utf-8"); //只对POST方式提交的数据有效
响应行
response.setStatus(404) 设置状态码
响应头
response.setHeader("name","value") 设置响应头
实体内容
response.getWriter().writer(); 响应二进制数据
response.getOutputStream().writer() 响应字符数据
设置响应类型和内容编码 如果未指定字符集,则将使用ISO-8859-1
response.setContentType("text/html;charset=UTF-8")
以流的方式响应
response.setContentType("text/html; charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.close();
重定向
response.sendRedirect("www.baidu.com");
转发
request.getRequestDispatcher("/student_list").forward(request, response);
初始化参数配置
<servlet>
<servlet-name/>
<servlet-class/>
<init-param>
<param-name>name</param-name>
<param-value>xyg</param-value>
</init-param>
</servlet>
创建
tomcat启动web应用封装这些配置信息到servletconfig对象中,调用init()时传入servletconfig对象
获取
this.getServletConfig().getInitParameter("name");//获取配置信息
servlet的上下文对象,表示当前web应用环境,
一个web应用中只有一个servletContext对象
获取
this.getServletConfig().getServletContext();//通过配置对象获取上下文对象
方法
servletContext.getContextPath(); //获取部署的项目名
servletContext.getInitParameter("name"); //获取web应用初始化参数(全局)
servletContext.getRequestDispatcher("/get").forward(request,response); //转发
用于在不同动态资源直接共享数据
分类
| HttpServletRequest | 一次请求 |
| ---- | ---- | ---- |
| ServletContext | 全局 |
|HttpSession | 一次会话|
|PageContext | 当前页面|
原文:https://www.cnblogs.com/xiongyungang/p/13934572.html