jsp页面,jsp页面跳转另一个jsp

将乐信息网 http://www.jianglexinxi.cn 2020-07-01 08:36 出处:网络
jsp页面,jsp页面跳转另一个jsp,JSP页面的基本结构 2). !-- jsp代码段 -- 1.在请求期间执行可以使用JSP页面所定义的变量,方法,表达式或者JavaBean.

jsp页面,jsp页面跳转另一个jsp,JSP页面的基本结构

2). !-- jsp代码段 -- 1.在请求期间执行可以使用JSP页面所定义的变量,方法,表达式或者JavaBean. 2.脚本定义的变量和方法在当前整个页面有效,但不会被其他线程共享,用户对该变量的不会影响其他用户,当变量所在的页面关闭时该变量就会被销毁 1.普通代码段   % for(int i=1;i =100;i++){   sum=sum+i;   ++i; } 2.含方法的代码段 %! int a=0; %   %! int add(){   a++;   return a;   }   %   p %= add() % 3.含对象的代码段 body   %! class test{   int add(int a){   a++;   return a;   }  } %   %! test test1=new test();int b=0; %   % b=test1.add(3); %   p %=b % 3). !--表达式-- 1.向页面输出内容 2.生成动态的链接地址 3.动态指定form表单处理页面 p 1加到100的和为: %=sum % /p 五:JSP常用指令 1).page指令(12个属性) 1.language属性-指定JSP页面使用的脚本语言 % @page language="java" % 2.extends属性--指定JSP编译器父类的完整限定名(不建议使用) % @page extends="javax.servlet.httpService"% 3.imPort属性--用于导入JSP页面使用的JAVA API类库。是唯一一个可以多次使用的属性。 % @page import="java.util.Date" % 4.session属性--用于指定是否可以使用session对象,若允许页面参与HTTP会话则为true.默认为true % @page session="true" % 5.buffer属性--用于设定页面缓冲区大小(字节数) % @page buffer="64k" % 6.autoFlush8属性--用于指定JSP页面是否自动刷新,若不自动刷新,当缓冲区满时抛出一个异常。 % @page autoFlush="false" % 7.isThreadSafe属性--用于指定JSP页面是否能够处理一个以上的请求,若是,则该页面肯恶搞同时收到多个JSP引擎发出的多个请求。 8.info属性--用于指定JSP页面的相关信息文本 9.errorPage属性--用于指定错误页面,无默认值。 10.isErrorPage属性 11.contentType属性--用于指定内容MIME类型和JSP页面的编码方式 12.pageEncoding属性--用于指定Jsp页面的编码方式 %@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% 2.include指令 用于在当前JSP页面中加载需要插入的文件代码,即为页面插入一个静态文件,如JSP页面,HTML页面,文本文件或是一段JAVA程序,这些加载的代码和原有的JSP代码合并成一个新的JSP页面,使用此命令有助于实现JSP的模块化。 % @include  % 将会在JSP编译时插入一个包含文本或代码的文件,这个过程是静态的。静态的包含的是指这个被包含的文件将会被插入到JSP文件中去 % @include file="文件名"% !--JSP_02-- P 接下来会嵌入JSP_01的页面 /P %@ include file="JSP_01.jsp"% !--JSP_01-- body   %! class test{   int add(int a){   a++;   return a; } }% %! test test1=new test();int b=0; % % b=test1.add(3); % p %=b % /body 3.taglib指令 用来指定页面中使用的标签库以及自定义标签的前缀 % @taglib uri="tagLibraryURI" prefix="tagPrefix" % 1.prefix属性 用于指定标记库中所有动作元素名中使用的前缀,无默认值。 2.uri属性 统一资源标识符属性用于指定标签库存放的位置,并告诉JSP引擎在编译JSP页面时如何处理指定标签库中的标签 ,无默认值。 %@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"% 六:JSP常用动作 1. jsp:param 用于 jsp:include , jsp:forward 动作体中,为其他动作传送一个或者多个参数 jsp:param name="参数名" value="参数值"/ name:指定参数名称,不可接受动态值 value:指定参数值,可接受动态值 2. jsp:include 用来把指定的文件动态插入正在生成的页面中。该动作允许包含静态文件和动态文件,这两种包含的效果是不同的,如果包含的是静态文件,那么包含仅仅是把包含文件的内容添加JSP文件去,这个文件不会被JSP编译器执行,如果包含的文件是动态的,那么这个包含的文件也会被JSP编译器执行 下面讲解include命令和include动作的区别 1)include命令 include命令可以在JSP指令转换成Servlet之前,将JSP插入其中。 2)include动作 在主页面被请求时,将其他页面的输出包含进来 1.在于二者被调用的时间。include动作在 请求期间被激活,而include命令在页面转换期间被激活。 2.在使用上也有差异。include指令并include动作的页面难以维护,include维护起来更容易,但include指令更强大,执行速度稍快,include指令允许包含的文件中含有影响主页面的JSP代码,如响应内容的设置和属性方法的定义 jsp:include page="文件名" flush="true"/ page:指定所包含资源的相对路径,可以接受动态值 flush:包含目标资源之前是否刷新输出缓冲区,默认值为false,不可接受动态值。 body P 接下来会嵌入JSP_01的页面 /P jsp:include page="JSP_01.jsp"/ /body !--JSP_02-- P 接下来会嵌入JSP_01的页面 /P jsp:include page="JSP_01.jsp"   jsp:param name="name" value="caizhen"/ /jsp:include !--JSP_01-- body   %=request.getParameter("name") % 你好,欢迎访问! /body 例子2演示的是动态功能。其中 %=request.getParameter("name") % 中的request.getParameter("name")通过使用内置方法获取name的值 3. jsp:useBean 该动作用来加载在JSP页面中使用到的JavaBean.这个功能非常有用,能够实现JavaBean组件的重用 jsp:useBean id="Bean实例名称" scope="page  |request |session  |application" clsss="JavaBean"类 type="对象变量的类型" beanName="Bean名字"/ 1).id属性:指定该JavaBean的实例名称,不可接受动态值。如果找到id和scope相同的Bean实例,该动作将使用已有的Bean实例而不是创建新的实例。 2).scope属性:指定Bean的作用域,一个作用域内Id值属性的值是唯一的。 1.page(默认),表示该Bean的作用范围是本页面内(保存在当前页面的PageContext内). 2.Request:表示该Bean在当前的客户端请求内有效。 3.Session:表示Bean在当前HttpSession内所有页面都有效,即会话作用域 4.Application:表示该Bean在任何使用相同的applicaton的JSP页面中有效,即整个应用程序范围内有效。 3).class属性:指定Bean的类路径和类名,不可接受动态值,这个class不能是抽象的。 jsp:useBean id="time" / p 现在的时间为: %= time % 4).type属性:指定引用该对象的变量的类型,它必须是Bean类的名字,超类的名字,超类名字,该类所实现接口名字之一。变量的名字是由id属性指定的。 5)beanName属性:用于指定Bean的名字,可以接受动态值。beanName属性必须与type属性结合使用,不能与Class属性同时使用 jsp:useBean id="time" type="java.io.Serializable" beanName="java.util.Date"/ p 现在的时间为: %= time % /p 4. jsp:setProperty 用来设置,修改已实例化Bean中的属性值 jsp:setProperty name="Bean的名称" property="*"  | property="属性" [param= 属性 value="值"]/ 1.name属性:必选,表示要设置的属性是哪个Bean的,不可接受动态值 2.property属性: 必选,表示要设置哪个属性。如果Property的值是 * ,表示所有名字和Bean属性名字匹配请求参数都将被传递给相应属性的set方法。 3.param属性:可选,指定用哪个请求参数作用Bean属性的值。如果当前请求没有参数,则什么事也不做,系统不会将null传递给Bean属性的set方法。因此可以上Bean自己提供默认属性值,只有在请求参数明确指定了新值时才修改默认属性值。 4.value属性:可选,用来指定Bean属性的值。 value和param不可同时用 jsp:useBean id="time"   jsp:setProperty name="time" property="hours" param="hh"/   jsp:setProperty name="time" property="minutes" param="mm"/   jsp:setProperty name="time" property="seconds" param="ss"/   /jsp:useBean   %=time % 5. jsp:getProperty 该动作获取指定的Bean属性值并转换成字符串输出。 jsp:getProperty  name="Bean的名称" property="Bean的属性 1.name属性:指定获取属性值的Bean的名称,不能接受动态值。 2.property属性:指定要获取的Bean的属性名,不可接受动态值 !--注册页面-- form action="register.jsp" action="get" table border="1" td 姓名: input name="userName" type="text" size="16" /td /tr td 密码: input name="passWord"  type="password" size="18" /td /tr td input type=submit value="提交" /td /tr !--数据处理页面-- body !--使用声明好的JavaBean,id为user-- jsp:useBean id="user" scope="page" / !--设置JavaBean的属性-- jsp:setProperty name="user" property="*"/ p 注册成功 /p br/ !--使用Bean的方法获取属性值-- 用户名: %= user.getuserName() % 密码: %= user.getpassWord() % hr/ !--使用getProperty动作获取Bean的属性-- 用户名: jsp:getProperty property="userName" name="user"/ 密码: jsp:getProperty property="passWord" name="user"/ !--数据处理页面使用UserRigisterBean来保存数据-- /body 6. jsp:forward 该动作用于转发客户端的请求到另一个页面或者另一个Servlet文件中去 jsp:forward page="地址或者页面"/ jsp:forward 动作可以包含一个或者多个 jsp:param 子动作,用于向要引导进入的页面传递参数。当动作发生时,如果已经有文本被写入输出流而且页面没有设置缓冲,将抛出异常。 1.page属性: page属性指定资源的相对路径,可接受动态值。 !--登陆界面-- body form action="JSP_04.jsp" table td 输入用户名: /td td input type="text" name="name" size="16" /td /tr td 输入密码: /td td input type="password" name="password" size="18" /td /tr td input type="submit" value="登陆" /td /table /form /body !--数据处理界面-- body String name=request.getParameter("name"); String password=request.getParameter("password"); if(name.equals("QQ")||password.equals("123")){ jsp:forward page="success.jsp" jsp:param value=" %=name% " name="user"/ /jsp:forward else{ jsp:forward page="JSP_03.jsp" jsp:param value=" %=name % " name="user"/ /jsp:forward /body 内置对象request调用getParamter()方法获取参数值 六:JSP内置对象 JSP提供了一些由JSP容器实现和管理的内置对象,在JSP应用程序中不需要预先声明和创建这些对象就能实现特定的功能,使Java Web编程更加快捷,方便。常见JSP内置对象有 1.out out对象主要用于向客户端输出各种数据,同时管理应用服务器上的输出缓冲区。应用服务器上缓冲区默认值为8kb,可以通过Page指令中的Buffer属性来设置缓冲区大小。。 1.print()/println():用于输出数据。 2.newLine():用于输出一个换行字符,实现换行功能 3.flush():用于输出缓冲区里的数据,该方法先把缓冲区的数据输出到客户端,而后再清除缓冲区中的数据。 4.clearBuffer():用于清除理的数据,并把数据输出到客户端。 5.clear():用于清除缓冲区里的数据,但是不会把缓冲区的数据输出到客户端。 6.getBufferSize():用于获取缓冲区的大小。 7.getRemaining():用于获取缓冲区的剩余大小。 8.isAutoFlush():用于自动刷新缓冲区,自动刷新返回true,否则返回false. 9.close():用于关闭输出流。 for(int i=0;i i++) out.println(" h3 我奋斗的目标是.... /h3 String str="我将成为一名优秀的Java工程师"; out.println(str+" br out.println("加油");   2.request: request对象能获取客户端的各种信息。 request对象的生命周期由JSP容器控制。   当客户端通过HTTP协议请求一个JSP页面时,JSP容器就会创建request对象并将请求封装到request对象中;当JSP容器处理完请求,request对象将会销毁。   当用户请求一个JSP页面时,JSP页面所在的Web服务器会将用户的请求信息封装到内置对象request中。request对象主要用于接收客户端通过HTTP协议传送给服务器端的数据,可以通过其方法对数据进行操作。 1.getAttribute(String name):用于返回name指定的属性值,若不存在指定的属性,就返回Null。 2.getAttributeNames();用于返回request对象保持的所有属性值,其结果集是一个Enumeration(枚举)实例 3.getCookies().用于返回客户端所Cookies对象,结果是一个Cookie数组 4.getCharacterEncoding()。用于返回客户端请求中的字符编码方式。 5.getContentLength().:用于以字节为单位返回客户端请求的大小。如无法得到该请求的大小,则返回-1. 6.getHeader(String name):用于获得HTTP协议定义的文件头信息 7.getHeaders(String name):用于返回指定名字的值。 8.getHeaderNames():用于返回HTTP协议所有文件头信息,其结果是一个Enumeration实例。 9.getInputStream():用于返回输出流,获得请求中的数据。 10getMethod();用于获得客户端向服务器端传送数据的方法。如;get,post. 11.getParameter(String name): 用于获得客户端传送给服务器端的参数值。获取表单提交的信息,以字符串形式返回客户端传来的某一请求参数值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回Null. 12 getParameterNames(): 用于获得客户端传送给服务器的所有参数值,其结果是一个Enumeration实例。 13getParameterValues(String name): 用于获得指定参数的所有值。返回客户端传送给服务器端的所有参数名,结果集是一个Enumeration实例。当传递给此方法的参数名没有实际参数与之对应时,返回NULL。 14getProtocol() 用于获取客户端向服务端传送数据所使用的协议名称。 15getRequestURL(): 获取获取客户端的地址。 16getRemoteAddr() 获取客户端的Ip地址。 17getRemoteHost() 用于获取客户端的名字 18getSession([Boolean create] : 用于返回和请求相关的session。create参数是可选的。当有参数值且为true时,如果客户端没有创建session,那么将创建一个新的session. 19:getServerName(): 获取服务器的名字。 20getServerPath(): 用于获取客户端服务器所请求的脚本文件的文件路径 21.getServerPort() 用于获取服务器的端口号 22.removeAttributr(String name) 用于删除请求中的一个属性 23setAttribute(String name,java.lang.Object obj); 用于设置参数。 1. !--留言板-- body form action="check.jsp" table td 留言: input type="text" name="context" size="16" % /td td input type="submit" value="发表" name="submit" /td /table /form /body !--数据处理页-- String name=request.getParameter("context"); String password=request.getParameter("submit"); 获取到客户端提交的文本和按钮信息如下 文本框的信息为: %=name % 按钮信息为: %=password % 2. !--在线成绩测试-- body form action="JSP_04.jsp" method="get" 1.测试测试测试测试测试()re input type="radio" name="1" value="B" 测试2 br input type="radio" name="1" value="C" 测试3 br input type="radio" name="1" value="D" 测试4 br input type="submit" value="提交" /form /body !--数据处理页-- body int examResult=0; String str1=request.getParameter("1"); if(str1==null) str1=" "; if(str1.equals("B")) examResult++; h3 你本次的测试成绩时: /h3 %=examResult*100 % /body 3.response 该对象将服务器端数据发送到客户端,该对象包含了响应客户请求的有关信息,其封装了JSP产生的响应,然后发送到客户端以响应客户的请求。他与request对象组成了一对接受,发送数据的对象,这也是动态的基础,response对象的生命周期由JSP容器自动控制。当服务器向客户端传送数据时,JSP容器就会自动创建response对象并将请求信息封装到该response对象中:当JSP容器处理完请求后,response对象就会被销毁。 常见的方法如下 1.addCookie(Cookie cookie):用于给用户添加一个Cookie对象,保存客户端的相关信息。。可以使用Request的getCookies()方法获取该Cookie对象。 2.addHeader(String name,String value);用于添加带有指定名称和字符串的HTTP文件头信息,该Header信息将传送到客户端,如果不存在就添加,存在就覆盖。 3.addDateHeader(StrIng name,String value):用于添加带有指定名称和字符串的HTTP文件头信息,该Header信息将传送到客户端,如果不存在就添加,存在就覆盖。 4.flushBuffer():强制把当前缓冲区所有内容发送到客户端 5.getBufferSize():用于获取实际缓冲区的大小,如果 没使用缓冲区则返回0 6.getCharacterEncoding():用于获取响应的字符编码方式 7.getContentType():用于获取响应的MIME类型 8.getOutputStream():获取客户端的输出流 9.sendError():用于向客户端发送错误信息,如404指网页找不到错误 10.sendRedirect();用于重新定向客户端的请求 11.setCharacterEncoding():用于设置响应的字符编码方式 12;setContent():用于设置响应的MIME类型。 13.setContentLength():用于设置响应内容的长都(字节数) 14.setHeader();用于设置指定名称和字符串的HTTP文件头信息,该Header信息将传送到客户端,如果不存在就设置,存在就覆盖。 15.setDateHeader():用于设置指定名称和日期值的HTTP文件头信息,该Header信息将传送到客户端,如果不存在就设置,存在就覆盖 !--服务器定时刷新,然后输出到客户端-- body %=new java.util.Date() % % response.setHeader("refresh","1"); % /body !--下拉框选择访问url-- !--前端-- form action="check.jsp" method="post" select name="link" option value="baidu" selected   baidu /option option value="hao123" selected 网址导航 /option /select input type="submit"  name="sunmit" value="确定" /form !--数据处理-- String address=request.getParameter("link"); if(address!=null) if(address.equals("baidu")){   response.sendRedirect("https://www.baidu.com/");   }else{   response.sendRedirect("https://www.hao123.com/");   } 4.session 1.session对象用于存储特定的用户会话所需的信息。当用户在应用程序的web页之间跳转时,存储在session对象的变量将不会丢失,而是在整个用户会话中一直存在下去。 2.当用户请求来自应用程序web页时,如果该用户还没有会话,则web服务器将自动创建一个session对象。当会话过期或被放弃后,服务器将终止该会话。 seesion对象在服务器端 cookie对象存在客户端 session对象处理客户端与服务器的会话,从客户连接到服务器开始,直到客户端与服务器断开连接为止。session对象用来保存每个用户的信息,以便跟踪每个用户的操作状态。其中,session信息保存在容器里,session的ID保存在客户计算机的Cookie中。用户首次登陆系统时容器会给用户分配一个唯一的session id 标识用于区别其他的用户。当用户退出系统时,这个session就会自动消失。 当一个用户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在cookie中,这样session对象和用户之间一一对应的关系。当用户再次访问连接该服务器的其他页面时,不再分配给其新的session对象。直到关闭浏览器后,服务器端该用户的session对象才取消,和用户的对应关系也一一消失。 sessIon的常用方法 1.getAttribute(String name):用于获取与指定名字相联系的属性,如果不存在则返回null。 2.getAttributeName():用于返回session对象中存储的每一个属性对象。 3.getCreatTime()。用于返回session对象被创建的时间,单位为毫秒 4.getId():用于返回session对象在服务器端的编号。 5.getLastAccessTime():用于返回和session对象相关的客户端最后发送请求的时间。 6.getMaxInactiveInterval();用于返回session对象的生存时间,单位为秒。 7.setAttribute(String name,java.lang.Object value);用于设定指定名子的属性值。并把其存储在session对象中。 8.setMaxInactiveInterval(int interval):用于设置session的有效时间。 9。removeAttribute(String name):用于删除指定的属性(包含属性名,属性值)。 如果在有效时间内,用户做出了新的请求,那么服务器就会将其看作一个新的用户,此时,服务器将创建一个新的session,旧的会丢失 10。isNew():用于判断目前session是否为新的session,若是返回true,否则返回false. session的创建时间 %=session.getCreationTime() % /br session的Id号 %=session.getId() % /br 客户最近一次访问时间是 %=session.getLastAccessedTime() % /br session: %=session.isNew()? "是":"否" % /br

本文标题:jsp页面,jsp页面跳转另一个jsp
http://www.jianglexinxi.cn/yanergaozhi/411022.html

0

精彩评论

暂无评论...
验证码 换一张
取 消