jsp基础

1.JSP是简化Servlet编写的一种技术,它将Java代码和html语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用html编写。

 

2.JSP可以放在除web-info以外的任何目录

 

3.JSP的本质就是一个Servlet

 

4.JSP页面的9个隐含对象:

①Request:HttpServletRequest的一个对象

②Response:HttpServletResponse的一个对象(这个隐含对象一般不用)

③pageContext:页面的上下文,是PageContext的一个对象,可以从该对象中获取其他8个隐含对象,也可以从中得到当前页面的其他信息。

④Session:代表浏览器和服务器的一次会话

⑤application:代表当前web应用,是ServletContext对象。

⑥Config:ServletConfig对象

⑦out:JspWriter对象,调用out.println()可以直接把字符串打印到浏览器上。

⑧page:指向当前Jsp对应的Servlet对象引用,但为Object类型,只能调用Object类的方法

⑨exception:在声明了page指令的isErrorPage="true"后才能使用

 

5.Jsp表达式:<%=某个值>:能将值直接输出到浏览器界面上

       <%=date%>

6.脚本片段:脚本片段可以相互嵌套

<!--脚本片段  -->

       <%

              StringageSrc=request.getParameter("age");

              Integerage=Integer.parseInt(ageSrc);

              if(age>18){

       %>

              成年

       <%              

              }else{

       %>

              未成年

       <%       

              }

       %>

 

7.jsp属性和相关的方法

(1)相关方法:objectgetAttribute(String name):获取指定的属性

EnumerationgetAttributeNames():获取所有属性名字组成的Enumeration对象

 RemoveAttribute(String name):移出指定的属性

VoidsetAttribute(String name,Object o)设置属性

(2)jsp的请求域:pageContext(当前页面),request(同一个请求,在有请求的转发的情况下可以跨页面获取属性值),session(同一次会话),application(整个web应用) 他们都有上述方法

8.请求的转发和重定向

(1)本质区别:请求的转发只发出了一次请求,重定向则发出了两次请求

①.请求的转发:地址是初次发出请求的地址。

  请求的重定向:地址栏不再是初次请求的地址,地址为最终响应的地址

②.请求转发:在最终的servlet中request对象和焕发的那个request是同一个对象;

  请求重定向:在最终的servlet中request对象和焕发的那个request不同一个对象。

③.请求的转发:只能转发到当前web应用的资源

   请求的重定向:能转发到任何资源

④.对于请求的转发而言“/”代表当前web应用的根目录

   对于请求的重定向而言“/”代表当前web站点的根目录

//请求的转发

//1.调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispatcher对象

              //调用getRequestDispatcher()需要传入地址

              Stringpath="testServlet";

              RequestDispatcherdispatcher=request.getRequestDispatcher("/"+path);

              //调用RequestDispatcher的forward(request,response)进行请求的转发

              dispatcher.forward(request,response);

//执行请求的重定向,直接调用response.sendRedirect(path)方法

              //path为要重定向的地址

              Stringpath="testServlet";

              response.sendRedirect(path);

9.jsp指令

(1)page指令常用的属性:

①import属性:指定当前jsp页面对应的servlet需要导入的类

<%@ page import="java.util.Date"%>

②session属性:取值为true或false,指定当前页面的session隐藏变量是否可用,也可以说访问当前页面时是否一定要生成HttpSession对象。

③. errorPage 和 isErrorPage:

       > errorPage 指定若当前页面出现错误的实际响应页面时什么.其中 / 表示的是当前 WEB 应用的根目录.

       <%@ pageerrorPage="/error.jsp" %>

 

       > 在响应 error.jsp 时,JSP 引擎使用的请求转发的方式.

      

       > isErrorPage 指定当前页面是否为错误处理页面, 可以说明当前页面是否可以使用 exception 隐藏变量. 需要注意的是: 若指定

       isErrorPage="true", 并使用 exception 的方法了, 一般不建议能够直接访问该页面.

      

       > 如何使客户不能直接访问某一个页面呢 ? 对于 Tomcat 服务器而言, WEB-INF 下的文件是不能通过在浏览器中直接输入地址的方式

       来访问的. 但通过请求的转发是可以的!

      

       > 还可以在 web.xml 文件中配置错误页面:

      

       <error-page>

      <!--指定出错的代码:404 没有指定的资源, 500 内部错误. -->

             <error-code>404</error-code>

             <!-- 指定响应页面的位置 -->

             <location>/WEB-INF/error.jsp</location>

       </error-page>

        

       <error-page>

             <!-- 指定异常的类型 -->

             <exception-type>java.lang.ArithmeticException</exception-type>

             <location>/WEB-INF/error.jsp</location>

       </error-page>

      

④. contentType: 指定当前 JSP 页面的响应类型. 实际调用的是response.setContentType("text/html; charset=UTF-8");

通常情况下, 对于 JSP 页面而言其取值均为text/html; charset=UTF-8. charset 指定返回的页面的字符编码是什么. 通常取值为 UTF-8

 

⑤. pageEncoding: 指定当前 JSP 页面的字符编码. 通常情况下该值和 contentType 中的 charset 一致.

 

⑥. isELIgnored: 指定当前 JSP 页面是否可以使用 EL 表达式. 通常取值为false.

      

(2).include 指令: <%@ include file="b.jsp" %>

 

1).include 指令用于通知 JSP 引擎在翻译当前 JSP 页面时将其他文件中的内容合并进当前 JSP 页面转换成的 Servlet 源文件中,

这种在源文件级别进行引入的方式称之为静态引入, 当前JSP页面与静态引入的页面紧密结合为一个Servlet。

 

2).file属性的设置值必须使用相对路径

 

3).如果以 / 开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章