javaWeb_JSP

系统管理员 2022-05-25 03:44 319阅读 0赞

JSP本质是一个servlet。编译时会为jsp动态生成相应的.class文件,里面就是此jsp对应的类,且派生自servlet。

JSP定义:Java Server Page:Java服务器端网页。即:在HTML页面中编写Java代码的页面。

  1. 隐含对象

Jsp共有9个隐含对象:

201805071744301912018050717443624320180507174442463

  1. 注释:

<%— JSP注释 —%>

区别:JSP注释可以阻止Java代码的执行

如,在jsp中有如下代码:

<% System.out.println(“…”);%>

如果使用<%— —%>包起来,则后台不会输出

如果使用包起来,后台还会输出。

  1. 请求转发与重定向

请求的重定向:

Response.sendRedirect(“servlet_or_url”);

请求的转发:

RequestDispatcher requestDispatcher = request.getRequestDispatcher(“/”+ “servlet_or_url”);

requestDispatcher.forward(request, response);

  1. JSP 指令

    一共有三种指令:page include taglib

    Page:

<%@ page

language=“java”

contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”

import=“java.util.Date”

session=“true”

isElIgnored=“true”

errorPage=“error.jsp”

isErrorPage=“false”

%>

language:只能是”java”

contentType:指定当前JSP的响应类型和页面的编码

pageEncoding:指定编码

pageEncoding是jsp文件本身的编码

contentType的charset是指服务器发送给客户端时的内容编码

import:在页面中使用某些java类时需要引入声明,如:

<% Date date = new Date();%>

注:如果没有引入则类名会报红,将光标放到类最后,按alt+/,会弹出框,选择相应的类即可引入声明。

session:false表示页面中不能使用隐含的session对象,如:

<%= session.getId() %>

isElIgnored:指定当前JSP页面是否可以使用EL表达式,通常为true

errorPage:当页面出错时自动跳转到指定页面,而不是在当前页面报错(给用户不好的体验)如:在页面中添加错误代码:

<% int i = 10/0;%>

isErrorPage:为true表示当前页面为错误页面,就可以直接使用exception对象了:

错误页面

errorMsg : <%= exception.getMessage() %>

20180507174709553

include:

如:在一个页面的body里添加如下代码:

<%@ include file=“homePage.jsp” %>

最终的结果是,homePage.jsp在工程编译的时候就被翻译到了当前页面的相应位置,这种引入称为静态引入

最好的例证就是,在当前页面定义一个java对象,在homePage.jsp中直接使用此对象,结果访问当前页面可以正常使用此对象,访问homePage.jsp则直接报错,因为此对象在它自己的页面中没有定义。

  1. JSP标签:

Jsp标签都以小写的jsp作为前缀,如:

把另外一个资源的输出内容插入到当前jsp页面的输出内容中。两个页面在翻译时会生成两个相应的类文件,然后通过一个方法的方式把目标页面包含进来,称为:动态引入

:静态引入和动态引入的本质区别在于jsp生成的源文件个数,开发过程中并不需要格外注意,两者都可以。

在页面中直接进行转发。即页面地址不变,但内容跳转到了homePage.jsp

相当于:

<%

RequestDispatcher requestDispatcher = request.getRequestDispatcher(“/homePage.jsp”);

requestDispatcher.forward(request, response);

%>

两者的区别在于可以使用子标签给目标页面传参。如:

在homePage.jsp中输出参数:

首页

<%= request.getParameter(“username”) %>

20180507174905734

发表评论

表情:
评论列表 (有 0 条评论,319人围观)

还没有评论,来说两句吧...

相关阅读