servlet与jsp小结

Posted 森文的技能学习之旅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet与jsp小结相关的知识,希望对你有一定的参考价值。

(一)Servlet

1、部署servlet容器
    1)安装jdk,配置java_home<根路径>;解压tomcat
    2)在path下加入tomcat脚本路径<任意目录下打开>,配置catalina_home<根路径>
    3) 通过tomcat配置文件下的server.xml修改端口号<port="8080">
    4)通过conf下tomcat-users.xml 修改tomcat manager 用户名密码
        <tomcat-users>
            <role rolename="manager-gui"/>
            <user username="tomcat" password="s3cret" roles="manager-gui"/>
        </tomcat-users>
2、java web 目录结构
    - WebContent
        - WEB-INF
            - classes
            - lib
            - web.xml
        - jsp 页面
        - html 页面
        - 图片 ...
    1) eclipse修改编译文件默认输出目录,设为classes<build path -->配置build path-->source>
    2)在tomcat的conf目录下依次创建 Catalina/localhost/test.xml<配置任意目录下的web应用程序>
        <Context
        Path="/wuyong"
        docBase="C:\\Users\\Administrator\\workspace\\test_3\\WebContent"  
        reloadable="true"/>
        !path名作为manager下的配置名
3、使用eclipse开发java web项目
    1)定制new透视图<windows-->perspective-->customize perspective>
    2) servlet容器管理servlet生命周期
        加载:指定创建实例的顺序<load-on-startup>
        构造器:创建servlet实例
        init()
        service()
        destory()
4、ServletConfig接口对应的方法
        getinitParameter();
        getinitParameterName();
        ServletName();
        ServletContext();
    1)获取当前WEB应用的某一个文件在服务器上的绝对路径,而非部署前的路径
    getRealPath(String path);
    2) 获取当前WEB应用的名称
    getContextPaht();

作为一个电脑工作者就应该自己装配电脑,从而节省经济和提高开发效率。
5、ServletContext接口
    设置初始化参数:<全局的>
    <context-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    <context-param>
    设置servlet初始化参数:<局部的,servlet的load-on-startup之前>
    <init-param>
        <param-name>user</param-name>
        <param-value>root</param-value>
    </init-param>
    <init-param>
        <param-name>password</param-name>
        <param-value>123456</param-value>
    </init-param>
6、get请求与post请求
    get请求数据添加在地址栏,数据量与url地址容纳量有关,一般4kb-7kb
    post请求数据封装在form data,数据量无限制
7、service()
    ServletRequest:封装了请求信息
        1)获取请求参数
            String getParameter(String name):根据请求参数名,返回一个参数值
            String getParameterValues(String name):根据请求参数名,返回参数对应的字符串数组
            Enumeration getParameterNames():返回参数对应的Enumeration对象
            Map getParameterMap():返回键值对 key-->参数名 value-->参数值,String类型
        2)获取请求url
        3)获取请求方式
        4) 若是get请求,获取url ?后的数据
        5)获取Servlet的映射路径
        6)和attribute相关的几个方法:
    ServletResponse:封装了响应信息
        1)*getWriter():返回PrintWriter 对象.调用该对象的print()方法,把print的参数打印到浏览器
        2)设置响应类型:response.setContentType("application/msword")
        3) void sendRedirect(String location):指定的重定向.(此方法为HttpServletResponse中定义)
8、servlet接口的实现类
    GenericServlet<不常用>
    HttpServlet<http协议定制的>

(二)JSP
1、jsp的定义:全称Java Server Pages,java服务器页面。其根本是一个简化的servlet设计。
2、jsp的九个隐含对象<没有声明就可以直接使用>
    request
    response
    pageContext
    session
    application
    config
    out
    page
    exception<特殊:前提是设置了page标签的属性-->isErrorPage="true">
3、换行的2种方式
     ①    %>
       <br>
       <%
     ②    out.print("<br>");
4、作用域属性范围从小到大
    pageContext,request,session,application
5、jsp语法
    1)静态html内容称
    2)jsp表达式 <%= %>
    3) 脚本片段,java代码中圈套html代码的 java代码片段,多个脚本片段可以相互进行访问
    4)jsp声明 <%! %>
    5) jsp注释 <%-- --%> html注释<!-- -->
6、域对象的属性操作
    域对象:
        pageContext:属性的作用范围仅限于当前jsp页面
        request:属性的作用范围仅限于同一个请求
        session:属性的作用范围限于一次会话:浏览器打开直到关闭称之为一次会话<在此期间会话不失效>
        application:属性作用范围限于当前WEB应用.只要在一处设置属性,在其他各处的jsp或servlet都可            以获取,服务器关闭或重启消失
7、请求重定向与请求转发
    servlet类的创建,可选择映射和方法
    请求转发与重定向:
        1)本质区别:请求的转发只发出一个请求,而重定向则发出了两次请求
        具体:
            ①请求的转发:地址栏是初次发出请求的地址
              请求的重定向:地址栏不再是初次发出的请求地址,地址栏为最后响应的那个地址
            ②请求的转发:在最终的Servlet中,request对象和中转的request对象是同一个
              请求的重定向:在最终的Servlet中,request对象和中转的request对象不是同一个对象
            ③请求的转发:只能转发给当前WEB应用的资源
              请求的重定向:可以重定向到任何资源
            ④请求的转发:/ 代表的是当前 WEB 应用的根目录
              请求的重定向:/ 代表的是当前 WEB 站点的根目录
    requestDispatcher
    requestRediect
8、jsp 2.0的三种指令page,include,taglib
    page指令:
        1)全局任意位置都全局有效,建议放在起始位置
        2)page指令的 常用 属性:
            ①import属性:指定当前jsp页面对应的Servlet要导入的类
              <%@ page import="com.ants.test.Test"%>
            ②session属性:取值为true 或false,指定当前页面的session隐藏变量是否可用
              <%@ page session="false"%>
            ③errorPage 和 isErrorPage
              > errorPage 指定若当前页面出错实际响应的页面,/ 代表当前 WEB 应用根目录,请求方                    式是 请求转发    
              <%@ page errorPage="/error.jsp"%>
              > isErrorPage 指定当前页面是否为错误处理页面,属性值为 true 则可以使用隐含对象                    exception,不建议能够直接访问该页面,属性值默认为 false
              > WEB-INF下的文件为隐私文件不能通过url直接访问,但可以通过请求转发访问
              <%@ page errorPage="/WEB-INF/error.jsp"%>
            ④contentType属性:指定当前页面的响应类型,实际调用的是response.setContentType                        ("text/html;charset=UTF-8")
            ⑤pageEncoding属性:指定当前jsp页面的字符编码.通常和contentType中的charset一致
            ⑥isELIgnored属性:指定当前页面是否可以使用EL表达式,通常取值为true
    include指令:将其他文件静态引入servlet源文件中,其中file属性用于指定被引用文件的相对路径,若以/
              开头则是 WEB 应用的根目录
              <%@ include file="registerURL"%>
9、jsp标签
    标签名以小写jsp作为前缀,如<jsp:include>、<jsp:forward>
    <jsp:include> 将其他文件资源 动态引入,生成2个servlet源文件
        <jsp:include page="b.jsp"></jsp:include>        
    <jsp:forward>
        <jsp:forward page="/include/b.jsp"></jsp:forward>
10、中文乱码问题
    1)jsp、开发工具、浏览器的编码格式改为utf-8
    2)若get请求-->servlet容器中conf/server.xml 修改编码格式
      若post请求-->servlet接口中的service()中添加<前提extends HttpServlet实现类>
          request.setCharacterEncoding("utf-8")
          response.setCharacterEncoding("utf-8")
11、MVC设计模式 





























































































































































以上是关于servlet与jsp小结的主要内容,如果未能解决你的问题,请参考以下文章

jsp小结

JSP与Servlet的介绍说明

jsp与servlet的区别

jsp与servlet之间的参数传递转

Servlet与JSP的区别(转)

JSP与Servlet传值及对比