码迷,mamicode.com
首页 > 其他好文 > 详细

servlet

时间:2018-02-27 10:58:49      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:servlet

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("/项目名/资源");

servlet

标签:servlet

原文地址:http://blog.51cto.com/13579086/2073381

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!