servlet
servlet介绍
javaWeb三大组件之一,Servlet程序,Filter程序,Listener监听器,它可以接收客户端发送过来的请求,并响应数据给客户端。
实现servlet程序
- 创建一个类去实现servlet接口
- 实现service方法,处理请求,并响应数据
- 在web.xml中配置servlet程序的访问地址
web.xml配置servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- servlet标签给tomcat配置servlet程序 -->
<servlet>
<!-- servlet-name标签 Servlet程序起一个别名(一般就是类名) -->
<servlet-name>HelloServlet</servlet-name>
<!-- 是servlet程序的全类名 -->
<servlet-class>com.atlianxi.servlet.HelloServlet</servlet-class>
</servlet>
<!--mapping标签给servlet程序配置访问地址-->
<servlet-mapping>
<!--name标签作用是告诉服务器,当前配置的地址给哪个servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!--配置的访问地址-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
通过mapping里面的url找到上面的那么再通过name里的类名找到上方servlet里的name然后通过name找到下面的class再找到class里面的service方法,需要执行的内容
servlet生命周期
- 执行servlet构造器方法
- 执行init初始化方法
第一第二步,是在第一次访问的时候创建servlet程序会调用。 - 执行service方法
第三步每次访问都会调用。 - 执行destroy销毁方法
第四步,在web工程停止的时候调用。
通过继承HttpServlet实现Servlet程序(另一种就是接口实现Servlet)
- 编写一个类去继承HttpServlet类
- 根据业务需要重写doGet或doPost方法
- web.xml中配置Servlet程序的访问地址
通过idea直接创建servlet程序:右键new–>Create New Servlet,name和类名一致,去掉最下方的勾选即可
ServletConfig类的三大作用
- 可以获取servlet程序的别名servlet-name的值
- 获取初始化参数init-param
- 获取servletContext对象
ServletContext
- 是一个接口,它表示servlet上下文对象
- 一个web工程,只有一个ServletContext对象实例
- 是一个域对象
什么是域对象?
可以像map一样存取数据的对象,这里的域指的是存取数据的操作范围。
servletcontext作用? - 获取web.xml中配置的上下文参数context-param
- 取当前的工程路径,格式:/工程路径
- 程部署后在服务器硬盘上的绝对路径
- ap一样存取数据
常用请求头说明
- Accept:表示客户端可以接收的数据类型
- Accept-Languege:表示客户端可以接收的语言类型
- User-Agent:表示客户端浏览器的信息
- Host:表示请求时的服务器ip和端口号
Java三层架构
debug调试
- f8 :让代码往下执行一行
- f7: 可以进入当前方法体内(自己写的代码,非其它框架源码)
- shift+f8:跳出当前方法体外
- Alt+shift+f7:强制进入方法体内
- Alt+f9:停在光标所在行(相当于临时断点)
- 方法调用栈窗口?
- 可以查看当前线程有哪些方法调用信息
- 下面的调用上一行的方法
问题
- 解决post请求中文乱码问题
req.setCharacterEncoding(“UTF-8”);