JSP案例

  • JSP三种声明:

第一种形式 java代码片断 <% %>

第二种形式 jsp表达式 <%= %>

第三种形式 jsp声明 <%! %>

  • page指令的session属性:

session属性的取值为true(缺省)/false。

如果值为false,则对应的servlet代码 当中不会生成声明和创建session的代码。

也就是说,不能够使用session隐含对象了。

  • page指令的isErrorPage属性和errorPage属性

jsp03.jsp:

<%@ page errorPage="errorHandler.jsp"  contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
    <title>Insert title here</title>
</head>
<body style="font-size:30px;">
    <%
      String num=request.getParameter("num");
      out.println(Integer.parseInt(num)+100);
     %>
</body>
</html>

errorHandler.jsp:

<%@  page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isErrorPage="true" %>
 <!-- exception隐含对象 -->
<html>
<head>
    <title>Insert title here</title>
</head>
<body style="font-size:30px;">

      出现异常
        <font> <%=exception.getMessage()%> </font>
</body>
</html>

访问:http://localhost:8080/xxx/jsp03.jsp?num=abc

  • 对JSP配置参数:

jsp:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
    <title>Insert title here</title>
</head>
<body style="font-size:30px;">
    address:
    <%=config.getInitParameter("address") %>
</body>
</html>

web.xml部分:

<servlet>
   <servlet-name>jsp04</servlet-name>
   <jsp-file>/jsp04.jsp</jsp-file>
   <init-param>
    <param-name>address</param-name>
    <param-value>shanghai</param-value>
   </init-param>
  </servlet>
  <servlet-mapping>
   <servlet-name>jsp04</servlet-name>
   <url-pattern>/abc.html</url-pattern>
  </servlet-mapping>

访问http://localhost:8080/web09/abc.html

  • 隐藏对象pageContext

jsp05:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
    <title>Insert title here</title>
</head>
<body style="font-size:30px;">
    <%
     pageContext.setAttribute("username","cj");
     request.setAttribute("pwd","123");
     %>
     username:
     <%=pageContext.getAttribute("username")%>
     pwd:
     <%=request.getAttribute("pwd")%>
     <a href="jsp06.jsp">链接</a>
</body>
</html>

jsp06:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
    <title>Insert title here</title>
</head>
<body style="font-size:30px;">
    username:
    <%=pageContext.getAttribute("username")%>
     pwd:
     <%=request.getAttribute("pwd")%>
</body>
</html>

测试

一个JSP对应一个pageContext对象,所以在jsp06.jsp中访问不到jsp05.jsp中pageContext 对象中的数据username;

同时,因为点击“链接”是一次新请求,所以jsp06.jsp中也访问不到jsp05.jsp中request对象 中的数据username;

放入session中是可以的。

如下jsp隐藏对象访问范围从小到大

pageContext 只有对应的JSP实例自己可以访问,生命周期从对应的JSP对象创建到JSP对象消亡。

request 一次请求能访问,生命周期在一起请求和响应期间。

session 一次会话期间能访问,多次请求和响应期间都存在。

ServletContext 整个应用内部所有组件都能访问,除非服务器关闭,否则一直存在。

  • 活动元素

<jsp:forward page=""/> 转发,page属性指定转发的地址

jsp07:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
   <html>
   <head>
       <title>Insert title here</title>
   </head>
   <body style="font-size:30px;">
        <%
        request.setAttribute("username","cj");
        %>
      <jsp:forward page="jsp08.jsp"></jsp:forward>
   </body>
   </html>

jsp08:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
  <html>
  <head>
    <title>Insert title here</title>
  </head>
  <body style="font-size:30px;">
   username:
       <%=request.getAttribute("username")%>
  </body>
  </html>

  • <jsp:include page=""/> 一个jsp在运行过程当中,调用另外一个jsp

jsp09:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
 <html>
 <head>
     <title>Insert title here</title>
 </head>
 <body style="font-size:30px;">
  jsp09..<br/>
  <jsp:include page="jsp10.jsp">
   <jsp:param value="123" name="pwd"/>
  </jsp:include>
      <br/>
      jsp09 other..
 </body>
 </html>

jsp10:

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
 <html>
 <head>
     <title>Insert title here</title>
 </head>
 <body style="font-size:30px;">
      pwd:
      <%=
      request.getParameter("pwd")
      %>
 </body>
 </html>

  • <jsp:useBean id="" scope="" class=""/> 在指定的范围绑订一个对象。

范围指的是四个对象pageContext,request,session,servletContext。

也就是说scope的值可以是"page","request","session","application"。

两段代码是等价的:

  • <jsp:getProperty/>

<jsp:setProperty name="" property="" value=""/>

<jsp:setProperty name="" property="" param=""/> 依据请求参数给属性赋值。

<jsp:setProperty name="" property="*"/> 使用"自省机制"给属性赋值。

34.新建bean.User.java

35.新建jsp11.jsp

测试:

  • Jsp中的注释

<!-- <%=new Date()%> --> 注释中的代码会执行,但不会在页面上输出。

<%--xxxx--%> 注释中的代码不会执行,也不会在页面上输出。

源代码:http://files.cnblogs.com/files/C3054/web05.rar

时间: 2024-11-03 21:24:02

JSP案例的相关文章

jsp案例之输出九九乘法表(仅使用jsp脚本元素)

JSP案例:使用JSP输出99乘法表,要求仅使用脚本元素.代码如下: <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JSP练习使用JSP脚本元素输出九九乘法表</t

java web学习笔记-jsp篇

转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,java/c#/php,javascript,xml,主流的动态网页脚本(jsp,asp.net,php) 1.2搭建java web开发环境 jdk1.7+tomc

黑马day06 jsp错误页面&amp;九大隐式对象

一.如果一个页面指定了errorPage="指定错误页面" ,当这个页面出错的时候就会跳转到指定的页面进行友好的提示给用户. 1. 本6.jsp只有一行代码1/0这行代码会抛出异常,因此会跳转到指定的error页面. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="/error.jsp"%>

java JSP(原创新手可进)

一. 同等编程方式jsp与asp.net的不同 app需要做一个简单网站,和几个用户推广链接,所以涉及到web这块开发,原本昨天想直接使用asp.net来做,但是之后放弃了这个想法,因为数据访问接口都是用的java servlet,最开始想直接使用静态的html页面+servlet+ajax的方式来做,这种方式虽然在网站开发中对各种语言都是通用的,但是有个弊端,绑定数据这块非常复杂,所以还是尝试找了个两个jsp案例来看看,如果比前面的方式更复杂,就直接用前面种方式了,下的案例来看了,感觉jsp这

JavaWeb项目--网上商城 (6-5)

day5--后台管理模块开发     案例1-后台所有分类展示                                                需求:        在左侧的树上上添加一个连接 "分类列表",点击分类列表 将所有的分类展示在右边的主页面上                                                步骤分析:                                                         

MVC模式-----struts2框架(2)

MVC模式-----struts2框架 第一个struts2程序 struts2框架是通过一个过滤器将struts2集成到Web应用程序中的,这个过滤器的对象是StrutsprepareAndExecuteFilter.struts2框架通过过滤器对象,获取web应用中的Http请求,并将http请求转发到的指定Action进行处理,Action根据处理结果返回给用户相应的页面. 创建一个简单的struts项目,需要创建于用户进行交互并获取输入信息的jsp页面:呈现最终信息的页面:创建一个用于业

会话技术——Cookies和Session详解

会话技术 (一) 概述.用途以及分类 (1) 基本概述 概述:会话是浏览器和服务器之间的多次请求和响应 也就是说,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和响应,合起来叫做浏览器和服务器之间的一次会话 (2) 为什么要使用会话技术呢? 实际上会话问题解决的还是客户端与服务器之间的通信问题,通过一些会话技术,可以将每个用户的数据以例如cookie/session的形式存储,方便以后用户访问web资源的时候使用 假定场景:A和B两人在某个网上购物商场登陆账

不用动手术的肝脏清洗法

几乎每个人体内都有肝胆结石,或许很多人只知道胆结石,不知道肝脏内也有结石,也不知道其实很多胆结石的初期就是在肝脏内形成的,更不知道吃夜宵.晚饭在7点之后吃.吃油炸食品.甚至喝水较少也会导致肝胆结石.就以上几个不良生活习惯,我们每个人占多少?简单的讲,肝脏是人体内最大的器官,它是人体的解毒工厂,它的构造极其复杂,所以至今为止,人类无法设计出人造肝脏,它的复杂度仅次于脑组织.所以让肝脏维持正常功能直接关系着人体的健康.肝脏可以使激素,酒精以及某些有害药物在体内失效.各种人体无法代谢的毒素都会由肝脏负

导演与明星老婆离婚 恋亲手捧红干女儿

http://www.ehotelier.cn/Thread.jsp?tid=182934http://www.ehotelier.cn/Thread.jsp?tid=182940http://www.ehotelier.cn/Thread.jsp?tid=182946http://www.ehotelier.cn/Thread.jsp?tid=182951http://www.ehotelier.cn/Thread.jsp?tid=182957http://www.ehotelier.cn/T