web05jsp

jsp: java server page

是sun公司发明的一种服务器端页面生成.

用于替换servlet中的out.printlin()

如何编写以及运行一张jsp页面?

webConten>>xxx.jsp

http://localhsot:8080/web05/index.jsp


Jsp的实质是servlet类


jsp生成的.java源文件目录


/Users/kinderice/Pictures/Desktop/apache-tomcat-6.0.47/work/Catalina/localhost/web05/org/apache/jsp 


JSP的组成部分:

1>jsp指令

page指令:

<%@page %>

属性:

contentType:在生成的.java的源文件设置resp输出内容类型:response.setContentType("");


pageEncoding:

告诉tomcat,在输出.java文件时所使用的编码.(输出到源文件保存)


告诉浏览器以什么编码打开改页码:

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">


2,html/css/js页面代码

jsp引擎会把这些页面代码原样输出到客户端.


导包:

<%@page import="java.text.*,"%>

<!-- 被包含在<%%>中的代码是java代码-->

<% %>

<%=now %>在html页面显示java变量值


请求到达服务器,Servlet 控制器调用Model(Service)>>Dao()>>>拿到返回数据时需要在jsp页面显示结果就需要把结果封装到response中转发到jsp页面显示结果.


请求转发:

什么是请求转发?


request.setAttribute("key",value);

请求转发

request.getRequestDispatcher("emplist.jsp").forward(req.resp);

转发和重定向的区别:

转发是服务器内部组件跳转,所有涉及的组件共享request对象,所以我们使用的request进行参数传递.

重定向是客户端再次发送新的请求,所以request对象是新的,不能使用request进行组件之间参数传递.


发送了几次请求?

转发:1次

重定向:2次



请求转发完成后浏览器地址停留的地址?


重定向:第二次请求的地址

转发:唯一次请求的地址


什么时候用转发?什么时候用重定向?

如果需要向第二个组件传递参数必须用转发,其余都可以用重定向.

如果一件事情在第一个组件中没有完成,需要交个第二个组件去做,那么使用转发.若已经完成了可以直接重定向.



转发和重定向是两回事:

// 4,重定向

resp.sendRedirect("list.do");

//如果使用请求转发,客户端不知道,浏览器地址栏不会更新一刷新就会再次访问之前的地址执行delete请求.所以不能用请求转发.

req.getRequestDispatcher("list.do").forward(req, resp);


<%@include file="header.jsp"%>引入子jsp. 多个jsp页面使用同一个header.


<%include file="header.jsp"%>

可以导入子页面.


servlet处理错误页面(service:)

throw new ServletException()

异常会被web容器捕获,tomcat会去web.xml中寻找有没有匹配的异常处理页面,若有则跳转到页面

若果没有,则返回一张默认异常页面.

web.xml

<error-page>

<error-code>500</error-code>

<location>/error500.html/jsp</location>

</error-page>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值