700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > jsp页面中嵌入java代码

jsp页面中嵌入java代码

时间:2022-09-24 11:29:29

相关推荐

jsp页面中嵌入java代码

1.jsp页面中嵌入java代码

jsp的脚本元素

jsp的指令元素

jsp的动作元素

1.1 jsp的脚本元素(直接嵌入java代码)

第一种:表达式(expression)形式:<%= %>例如:<%="hello" %><%=1+1 %><%=s.getName() %>将来翻译到java文件中的位置:【_jspService方法中的out.print(..)里面的参数.】例如上面那几个例子会翻译成out.print("hello");out.print(1+1);out.print(s.getName());所以System.out.prntln()这个方法的参数可以写什么,那么我们这个jsp页面中表达式里面就可以写什么.注意:在jsp中的表达式里面不需要加;号。第二种:脚本(scriptlet)形式:<% ... %>或者<%....%>例如:<%Student s = new Student();String name = "tom";String username = s.getName();List<String> list = new ArrayList<String>();list.add("hello")%>将来翻译到java文件中的位置:【脚本中的代码将来会被直接翻译到_jspService这个方法中.】在一个普通的方法中我们可以写什么样的代码,那么在脚本中就可以写什么样的代码.注意:在脚本中所写的代码,代码的最后是要加上;号的.因为我们在一个方法里面所写的没一句代码后面都是要加;号。在脚本声明的变量,我们是可以在表达式里面使用的,但是要注意要先声明变量再使用变量.只要查看脚本和表达式分别翻译到java文件中的位置,就可以很清楚的认识到这一点.第三种:声明(declaration)形式:<%!.....%>例如:<%!private String name;public String go(){System.out.println("hello world "+name);return "this is go()";}%>将来翻译到java文件中的位置:【直接将声明中的代码翻译到java文件里面所定义的类中。】所以我们直接可以在一个类中写什么,就可以在声明中写什么.(一般在声明中会去定义一些类中的成员变量或者方法)注意:这里面的代码,定义变量的时候要加;号,定义方法的时候不用加;号,这是和我们写一个java类语法是一样的。

1.2 jsp的指令元素

jsp的指令是给jsp引擎看的,让jsp引擎在翻译jsp页面成java文件的时候,知道需要注意哪些地方的设置.比如页面中的编码、页面中脚本里面所用的编程语言、翻译的java文件中需要引入哪些其他包下的java类等等.

写法: <%@指令名字 属性="值" .. %>指令包含page include taglib三种page指令:1.表示当前页面中的编程语言是java,目前这个属性值只能写javalanguage="java"2.在当前页面中要引入哪些包下的类.import="java.util.HashMap"import="java.util.HashMap,java.sql.Connection"3.设置jsp页面文件保存时候所用的编码pageEncoding="UTF-8"4.设置服务器将来使用io把jsp页面内容一行一行的输出给浏览器的时候,使用什么编码向浏览器输出.contentType="text/html; charset=UTF-8"5.设置jsp页面被翻译成java文件的时候,java文件中的类要继承那个父类.这个属性不用设置,jsp引擎会给它一个默认的父类去继承的.extends=""6.设置当前这个jsp页面是否支持session对象的使用.默认是支持的.session="true"7.设置jsp页面是否是线程安全的.isThreadSafe="true"8.如果a.jsp页面中设置了errorPage="b.jsp",那么a.jsp页面在运行的时候一旦出错,就会自动跳转到b.jsp里面.errorPage=""9.如果一个页面中设置了isErrorPage="true",那么就表示这个页面是用来专门显示错误信息的页面.然后在这个页面中就能够使用到隐藏对象exception来显示出错误的信息了.(需要使用jsp的内置对象)isErrorPage=""include指令:<%@include file="" %>作用:在当前页面中使用include指令可以把另外一个页面的内容引入到当前页面。一个页面包含/引入另外一个页面有俩种方式:静态包含 动态包含。这个include指令就属于静态包含静态包含特点:例如a.jsp页面中静态包含了b.jsp页面,那么在翻译期间,jsp引擎在翻译a.jsp成为一个a_jsp.java文件的时候,发现jsp页面中有include指令,这时候jsp引擎就会把被包含的页面b.jsp中内容原封不动的拿到a_jsp.java中,然后用io输出出去.taglib指令:作用:在当前jsp页面中引入一些特殊的标签库.比如jstl标签库、struts2标签库、spring标签库等等【实际上都是封装好的Java代码】.

1.3 jsp的动作元素

1.<jsp:useBean id="s" class="com.briup.bean.Student" scope="page"></jsp:useBean>相当于代码:<%Student s = null;s = (Student)pageContext.getAttribute("s");if(s==null){s = new Student();pageContext.setAttribute("s",s);}%>2.<jsp:setProperty property="name" value="tom" name="s"/>相当于代码:<%Student s = (Student)pageContext.getAttribute("s");s.setName("tom");%>3.<jsp:getProperty property="name" name="s"/>相当于代码:<%Student s = (Student)pageContext.getAttribute("s");out.write(s.getName());%>4.页面跳转<jsp:forward page="target.jsp"></jsp:forward>5.跳转的同时还可以传参数<jsp:forward page="target.jsp?name=tom"></jsp:forward>或者<jsp:forward page="target.jsp"><jsp:param value="tom" name="name"/></jsp:forward>6.这个动作元素专门是传参数使用的<jsp:param value="tom" name="name"/>7.动态包含<jsp:include page="foot.jsp"><jsp:param value="lisi" name="name"/></jsp:include>注意不能使用url?name=tom这种方式传动态包含特点:在把jsp文件翻译成java文件的期间,动态包含并不会去把被包含的页面原封不动的拿过来,而是会把动态包含这个标签翻译成一个方法的调用,将来运行页面调用到这个方法的时候才会去拿被包含页面的内容.同时还可以给动态包含的页面传参数.静态包含是不能传参数的。注意:总结和对比后,分析出动态包含和静态包含各自的特点,以及哪一个执行的效率更快一些.8.使用jsp的动作元素向浏览器输出一个标签<jsp:element name="font"><jsp:attribute name="color">blue</jsp:attribute><jsp:body>hello world</jsp:body></jsp:element>这个效果相当于在页面代码中直接写上<font color="blue">hello world</font>或者:<%out.println("<font color='blue'>hello world</font>");%>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。