jsp页面相比静态页面html来说,就是多了一些脚本,利用这些脚本来动态地改变页面内容的显示。

1.JSP脚本写法


1 <%            这里写java代码;            %>
2 <%!     JSP声明,用来声明变量、方法;       %>
3 <%=               表达式                %>
4 <%--             JSP注释              --%>


注意:表达式后面不能接分号。

2.JSP指令

1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
2 <%@ include file="login_success.jsp" %>



page指令,基本上可以说是每个jsp页面的标配吧,它定义了这个jsp页面脚本语言--java,解析类型--html,

内容编码--utf-8,以及页面的编码-utf-8.

include指令,这个指令相当于html的iframe标签,实现在这个页面中内嵌一个其他页面,这个指令位置放在

哪,那么新页面的渲染位置就在哪。

3.JSP动作

表单获取用户名、密码;



1 <%--用javabean规则建一个Users类(eco包下),实例化一个对象newUser --%>
2 <jsp:useBean id="newUser" class="eco.Users" scope="page"/>
3 <%--设置newUser的属性值,值来自于表单,*号表示取得所有属性值赋给对应的newUser对象 --%>
4 <%--属性名如果不写*,可以填newUser对应的属性,但是没有填的属性就获取不到 --%>
5 <jsp:setProperty name="newUser" property="*" />  
6 <%--调用newUser对象的getter方法获取属性值,渲染到页面 --%>
7 姓名:<%=newUser.getUsername()  %>
8 密码:<%=newUser.getPassword()  %>



注意:登录界面填写的用户名、密码数据类型一定要和Users类中规定的数据类型一致!

手动设置输出的用户名、密码;



1 <form id="login" action="login.jsp?mypassword=88888" method="post">
 2 <jsp:useBean id="newUser" class="eco.Users" scope="page"/>

 3 <%--手动设置username的值vaule--%>
 4 <jsp:setProperty name="newUser" property="username" value="eco" />

 5 <%--手动设置password的值,值来自于表单发送请求时设置的mypassword值--%>  
 6 <jsp:setProperty name="newUser" property="password" param="mypassword" /> 

 7 姓名:<%=newUser.getUsername()  %>
 8 密码:<%=newUser.getPassword()  %>



上面最后一个是将发送请求时URL里的mypassword值取出赋值给newUser对象的password属性;

<%=request.getParameter("mypassword") %>这句命令即是获取发送请求时URL里的mypassword值。



1 <jsp:include page="login_success.jsp" flush="true" />



这是一个include动作,功能和其指令一样,page属性表示要插入的页面,flush属性表示是否从缓冲中读取。



1 <jsp:forward page="login_success.jsp" />



这是一个服务器转发动作,相当于

request.getRequestDispatcher("login_success.jsp").forward(request, response);

将登录页面发来的请求转发到login_success.jsp页面,这个过程是一次请求,虽然经过了两个页面。



1 <jsp:forward page="login_success.jsp" >
2      <jsp:param name="e-mail" value="eco@163.com" />
3 </jsp:forward>



parameter动作通常和forward一起使用,登录表单发送请求给当前页面时只保存了用户名、密码两个信息,

当前页面要转发这次请求给login_success.jsp页面,转发之前,为这次请求添加了一个e-mail属性,那么,

我们可以在login_success.jsp页面通过<%=request.getParameter("e-mail") %>获取之前添加的e-mail属性。