1.什么是servlet(接口)

定义所有的servlet都必须实现该接口 一个servlet是一个小的java程序,必须运行在一个web服务器中,能用来接收从客户端发送的过来的请求,也能响应给客户端请求结果,通过http协议来传输请求内容和响应请求结果,说明servlet能解析http协议。

2.如何编写servlet程序

1.实现接口Servlet或者继承HttpServlet 2.编写配置文件 在web.xml中添加配置文件

3.Servlet在tomcate服务器中的执行过程

http://localhost/ServletDemo/demo

请求会先到达tomcate服务器,服务器先检查项目是否存在,服务器在启动的时候,会把web.xml里面的配置文件全部都解析好了。找到url-pattern节点的内容是demo的,接着找到servlet-mapping节点中的servlet-name节点的内容,z然后找到和该内容一样的servlet节点中servlet-name节点的内容,最后找到servlet-calss节点中的全路径。服务器通过反射技术,生成reques(封装了所有请求信息)t和response(封装了所有的响应信息)和servlet类的对象,通过对象调用servlet接口中的init()he service()方法,并把request和response对象传递给servlet

4.servlet生命周期

生命周期:在特定的时间干特定的事情 servlet生命周期分为:创建(init()) 提供服务(service()) 销毁(destory()) init():只执行一次,第一次访问,先创建servlet对象,然后调用init(),在调用service() service():执行无数次 destory():执行一次,服务器关闭前 总结:servlet单例的

5.servlet体系结构

HttpServlet重写service干嘛呢?获取请求方式,如果是get执行doGet(),如果是post执行doPost()

6.路径问题

相对路径 ./代表当前目录下某个文件或者文件夹,视后面跟着的名字而定 ../当前目录上一级目录下摸个文件或者文件夹,视后面跟着的名字而定 绝对路径 详写:http://localhost/项目名/资源 简写:/项目名/资源

7.request对象获取请求参数

HttpServletRequest 继承 ServletRequest,统称为requset接口,代表请求,该接口的实现类由tomcate创建 String getParameter(String name) 获取的是文本框,密码框,单元按钮,下拉选择框等 String[] getParameterValues(String name) 获取的是复选框的值 Map getParameterMap() 获取到表单中的所有值

8.reponse对象响应客户端
HttpServletResponse 继承 ServletResponse,统称为response接口,代表响应,该接口的实例由tomcate创建
	向页面输出的方法如下:
		ServletOutputStream getOutputStream()  获取字节输出流
		PrintWriter getWriter() 获取字符输出流
	向页面输出中文会产生乱码,为什么?响应内容和浏览器编码不一致
	字节流:
						设置浏览器编码:response.setHeader("Content-type","text/html;charset=UTF-8")
						设置字节数组编码:out.write("中文".getBytes("UTF-8"))
	字符流:
							设置浏览器编码:response.setHeader("Content-Type","text/html;charset=UTF-8")
							设置response对象的缓冲区的编码:response.setCharacterEncodeing("UTF-8");
							response对象默认是有缓冲区,缓冲区默认编码是ISO-8859-1
							简写:response.setContentType("text/html;charset=UTF-8")

9.Servlet默认是在第一次访问时创建。如何让servlet在tomcate启动时就创建 在web.xml中 10.url-pattern的配置 完全路径匹配:配置文件怎么写,就怎么访问,以/开头。优先级最高 目录匹配:当访问的路径不存在时访问该servlet,写法/。优先级第二 扩展名匹配:当访问的路径不存在时并且以扩展名结尾时访问该servlet,不能以/开头,.do *.action,优先级最低 11.重定向 什么是重定向 客户端想服务器发送请求,服务器告诉客户端你去重定向(状态码302,响应头location=地址),客户端接到重定向的响应,去请求location的值,在得到响应。重定向结束 response.setStatus(302); response.setHeader("location","/项目名/资源") 简写 response.sendRedirect("/项目名/资源");