设问了特,哔叽

来源:互联网 发布:海口百度seo 编辑:程序博客网 时间:2024/04/28 06:11

servlet的主要功能:交互式浏览和修改数据
 
访问servlet
    http://ip:port/appName/url-pattern
    http://localhost:8080/project_name/index.jsp
     
http协议:
定义了web browser与web service之间的数据交换方式,一种无状态协议。
    request:客户端的请求
    response:响应客户端请求
    HTTP/1.1   200   OK
    协议/版本  状态码   文本版本
     截获内容:
        HTTP/1.1 200 OK      // HTTP/1.1 是web服务器使用的版本;200 是状态码;OK 是状态码的文本版本
        ETag: W/"472-1198101802343"
        Last-Modified: Wed, 19 Dec 2007 22:03:22 GMT
        Content-Type: text/html  // MIME类型:告诉浏览器所要接收的是哪一类型的数据。以供浏览器显示。
        Content-Length: 472
        Date: Wed, 19 Dec 2007 22:05:44 GMT
        Server: Apache-Coyote/1.1
        //以上是Http响应的首部
        //响应体中包含了Html以及其他要显示的内容
        <html><head><title>User Login</title></head>
        <body><center>……</center></body></html>
         
    状态码:
        200:成功
        302:重定向指令
        404:地址不存在
        500:系统内部出错
        1xx:信息响应类,表示接收到请求并且继续处理
        2xx:处理成功响应类,表示动作被成功接收、理解和接受
        3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
        4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
        5xx:服务端错误,服务器不能正确执行一个正确的请求
   
解决 Servlet 的中文乱码问题
    browser会对ascII之外字符进行编码
   
    (1)响应输出静态页面时 response.setContentType("text/html; charset=utf-8");//返回的文档采用utf-8编码
    (2)获取数据过程中,处理中文输入乱码(3 种方法):
       方法一:设置字符编码来解决 post 方法提交表单中文乱码问题。
             解码:request.setCharacterEncoding("gbk"); 
             编码:response.setContentType("text/html;charset=gbk");
             必须在第一个 request.getParameter("name"); 之前执行上面的语句。
       方法二:重新生成指定编码的字符串
     String name = new String(request.getParamete("name").getBytes("iso-8859-1"));
       方法三:修改服务器的编码设置——解决 get 方法提交表单中文乱码问题
             例如:Tomcat,通过修改%TOMCAT%/conf/server.xml
             加入 URIEncoding="utf-8"
    (3)静态 html 页面的中文化问题
       <head>
            <meta http-equiv="content-type" content="text/html; charset=gbk">
       </head>
       
       数据库乱码:
           create database xxx default character set gbk;
           alter database xxx character set gbk;
           同时改jdbc的url:
           jdbc:mysql://localhost:3306/xxx?useUnicode=true&charaterEncoding=utf8;
       
表单提交:
    get请求:只能传送少量的数据(2kb左右),一般用于请求访问某个资源。
    post请求:发送的数据在http数据包里,相对安全,数据量2M。
     
    通过表单或则响应头修改数据
     
重定向:response.sendRedirect(url);
    @servlet/jsp(或则其他组件)向browser发送url,browser访问新的url
    @重定向之前的输出会清空,不会发送~
     
servlet api 重点:
    @首次访问时执行servlet.init(ServletConfig);以后共享
        init(config){
            thisconfig=config;
            init();
        }
    @service():处理请求,默认调用doGet(),doPost()
    @servlet.dertory():清理资源,卸载服务
     
servlet属性并发性问题,资源共享
如果servlet实现了SingleThreadModel接口,每一个请求会对应一个实例
<load-on-startup>2</load-on-startup>tomcat启动时实例化servlet(后台服务的,数值越小优先级)
   

原创粉丝点击