jsp学习总结



JSP学习重点

JSP  (java server page java服务器端网页)
jsp:html中嵌套写java代码             相比servlet更简单
servlet:java代码中嵌套写html代码    复杂

JSP它的本质是Servlet

<%
 
书写java代码

%>

jsp运行原理


--------------------------JSP学习要点---------------------------------

JSP可以放置在WEB应用程序中除了WEB-INF及其子目录 外的任何其他目录中。
JSP的运行原理:jsp本质上还是一个Servlet
每个jsp页面在第一次访问时,JSP引擎先将它翻译成Servlet源程序,接着再把这个servlet源程序编译成class文件,然后由web容器装载。

隐含对象:即不声明就可以直接使用的对象

1.JSP九个隐式对象(不用声明创建就可以直接当对象使用)

    1.request                httpServletRequest对象

    2.session       httpSession对象  代表浏览器和服务器的一个会话

    3.application      ServletContext对象  代表当前web应用,能获取初始化参数(是在web.xml里面定义的初始化参数)

    4.response               httpServletResponse对象(在jsp页面中几乎不会使用这个对象)
    前三个最为重要,也是使用最多的。

    5.pageContext            PageContext对象  页面上下文,可以从该对象获取其它八个对象,获取当前页面信息(自定义标签时使用)

    6.config      当前jsp对应的ServletConfig对象(开发中几乎不使用)

    7.out                   JspWriter对象  调用out.println()方法打印到浏览器中

    8.page             page=this代表当前jsp对应的Servlet对象引用,类型为Object只能使用Object的方法  (开发中几乎不用)

    9.exception             只有在声明了page指令的isErrorPage="true"时才可以使用

      
pageContext、request、session、application对象的属性作用范围依次变大。这四个对象被称之为域对象

pagContext:属性作用范围仅限于当前JSP页面
request:属性作用范围仅限于同一个请求
session:属性作用范围仅限于同一次回话:浏览器打开直到关闭称之为一次回话(在此期间要保证回话不失效)
application:属性作用范围是当前web应用,是范围最大的属性作用范围。



2.JSP语法:


    1.模板元素  即固定的静态页面 html代码

    2.jsp输出表达式  <%= %>

    3.jsp (java)脚本片段 <%  写java代码。。。  %>

    4.jsp的声明  <%! %>  可以声明方法    但是jsp声明几乎不使用

    5.jsp注释    <%-- jsp注释  --%>

3.请求重定向和请求转发:(非常重要)
      对我的困惑点:关于请求转发和请求重定向的地址的写法

      转发地址一般都是:/

      重定向地址一般都是没有写/
        本质区别:请求转发只发生了一次请求,而重定向则是向服务器发出了两次请求
       
   具体区别:1.请求转发的地址栏不发生改变,重定向会发生改变
     2.请求转发转发中最终的servlet里的request对象和最初的那个是同一个对象,请求重定向则不是同一个对象
                 3.请求转发只能转发到当前web应用的资源,请求重定向可以任何资源
   4.请求转发:/ 代表的是当前WEB应用的根目录   http://localhost:8080/project/WebRoot
                   请求重定向:/代表的是当前站点的根目录     http://localhost:8080/

4.JSP中文乱码解决方案

  解决方案:
  第一处理级别:修改jsp的编码模板 使 pageEncoding和charset都为utf-8;(修改jsp模板)  ---jsp页面显示中文

  第二处理级别:获取参数时使用request.setCharset("utf-8");  对于post请求有用   ---获取参数时候

  第三处理级别:修改tomcat的server.xml文件   添加这个useBodyEncodingForURI="true"属性。  ---全局处理


  中文乱码问题最好是使用过滤器来解决。


5.JSP: page指令、include指令、JSP标签
  比较简单随便了解即可。


请求重定向和请求转发:


总结:

         响应重定向:(一个web资源收到客服端的请求后,通知客户端去请求另一个web资源--也就是你向我借钱,我没有,我要你自己去找另一个人借钱)

                  客户端访问了两次服务器 也就是 两个 response/request


                  地址栏上的地址会显示出,你重定向后的地址,客户知道了地址变化了



                  重定向的地址有两种写法 开头一种是加‘/‘斜线,表示访问web容器根目录下(localhost:8080)的资源;

                  一种是不加斜线' / ',就是访问当前运用下的资源(推荐不加斜线)



                  重定向的地址可以是web容器内的或其它web应用


                   
                  应用:重定向一般用在 登录模块,和显示购物车


请求转发:(一个web资源收到客服端的请求后,服务器程序帮客户端去请求另一个web资源,也就是你向我借钱,我没有,我帮你去找另一个人借)

                  客户端发出了一个请求,转发过程由服务器帮你搞定



                  转发的地址不加‘/‘斜线,表示访问相对于当前的请求路径而言;

                  如果使用”/”开头,代表相对于当前上下文路径,即”/”表示应用上下文的根



                  转发是只能转发到当前web容器的运用里,因为 forward(request,response)


关于/的问题:使用绝对路径绝对没有问题,使用相对路径有时候会出现拿问题。





  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值