静态内容
指令
表达式
小脚本
声明
注释
1.指令:
page指令: 常日位于jsp页面的顶端,同一个页面可以有多个page指令。
include指令:将一个外部文件嵌入到jsp文件中。
taglib指令 :利用标签定义新的自定义标签。
1.1个中page指令语法:
<%@ page 属性=“属性值”>
1.2 include 指令
<%@ include file=\"大众url\"大众 %>
1.3 动作
include动作
<jsp:include page=\公众url\公众 flush=\"大众true\"大众/>
include 动作和include指令差异
描述 | include指令 | include 动作
--- | --- | ---
语法 | < % @ include file=\"大众\公众/> | < jsp:include page=\"大众url\"大众 flush=\"大众true\公众/>
发生韶光 | 页面转换期间 | 要求期间
包含内容 | 文件实际内容 | 页面的输出
转化servlet | 一个servlet | 2个servlet
编译韶光 | 较慢 | 较快
实行韶光 | 稍快 |较慢--每次资源必须被编译
forward动作
<jsp:forward page=\"大众url\"大众/>
==request.getRequestDispatcher(\"大众/url\公众).forward(res,resp);
param动作
<jsp:param name=\公众参数名\公众 value=\公众参数值\"大众/>常常与<jsp:forward>一起利用
例子:
<jsp:forward page=\公众user.jsp\"大众>
<jsp:param name=\"大众email\公众 value=\公众1233@154.com\"大众/></jsp:forward>
2.jsp注释
html注释
<!-- html注释 -->//客户端可见
jsp 注释
<%-- jsp注释 --%>//客户端不可见
jsp 脚本注释 //客户端不可见
//单行注射
/ 多行注释/
3.jsp脚本
在jsp页面中实行的java代码,语法:
<% java 代码 %>
4.jsp声明
在jsp页面定义变量或者方法,语法
<%! java 代码 %>
举例:
<%!
String s=\公众adele\公众; int add(int x,int y){ return x+y;
}
%>
5.jsp表达式
在jsp页面实行的表达式,语法:
<% =表达式 %>// 表达式不以分号结尾
举例:
<%!
String s=\公众adele\"大众;%><h2> hello,<%=s %> </h2>
三、jsp生命周期CC36B22A-503E-4C29-98BB-3B58038C140E.png
jspService()是用来处理客户端要求的,对付每一个要求,做事器会创建一个新的线程来处理该要求。以多线程办法实行大大降落对系统的资源需求,提高系统的并发量和缩短了相应韶光,servlet是常驻在做事器内存中。
它同servlet 一样,jsp 实例初始化和销毁也会调用sevlet的init() 和destroy();
其余jsp还有自己的初始化方法_jspInit();_jspDestroy();
<%@ page language=\公众java\"大众 contentType=\公众text/html\公众;charset=\公众utf-8\公众>
<%!
public void _jspInit(){
}public void _jspDestroy(){
}
%>
四、javaben的利用动作元素:
动作元素为要求处理阶段供应信息。
Paste_Image.png
在jsp页面利用javaben
像普通的java类一样,创建javabean;
在jsp利用动作标签来利用 javaben
干系标签如下:
<jsp:useBwan id=\"大众\"大众 class=\"大众\公众 scope=\公众\"大众 />
<jsp:setProperty name=\公众javabean 是例\公众 property=\"大众\"大众/>(跟表单关联)
<jsp:setProperty name=\公众javabean 是例\公众 property=\公众javaben 属性名\"大众/>(跟表单关联)
<jsp:setProperty name=\公众javabean 是例\"大众 property=\公众javaben 属性名\"大众 value=\公众\公众/>(手动设置)
<jsp:setProperty name=\"大众javabean 是例\"大众 property=\"大众javaben 属性名\公众 param=\"大众request工具参数\"大众/>(跟request参数关联)
<jsp:getProperty name=\公众\"大众 property=\"大众\"大众/>
举个例子:
首先用户 在login.jsp提交表单,然后用户在dologin.jsp 根据动作标签获取参数。
login.jsp
<form name=\"大众loginForm\公众 action=\"大众dologin.jsp?mypass=999999\公众 method=\公众post\"大众>
<table>
<tr>
<td>用户名:</td>
<td><input type=\"大众text\公众 name=\"大众username\公众 value=\"大众\公众/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type=\"大众password\公众 name=\"大众password\公众 value=\"大众\公众/></td>
</tr>
<tr>
<td colspan=\公众2\"大众 align=\公众center\"大众><input type=\"大众submit\"大众 value=\"大众登录\公众/></td>
</tr>
</table>
</form>
dologin.jsp
<body>
<jsp:useBean id=\"大众myUsers\"大众 class=\"大众com.po.Users\"大众 scope=\公众page\"大众/>
<h1>setProperty动作元素</h1>
<hr>
<!--根据表单自动匹配所有的属性 -->
<%--
<jsp:setProperty name=\"大众myUsers\"大众 property=\"大众\"大众/>
--%>
<!--根据表单匹配所有部分的属性 -->
<%--
<jsp:setProperty name=\"大众myUsers\"大众 property=\"大众username\公众/>
--%>
<!--根表单无关,通过手工赋值给属性 -->
<%--
<jsp:setProperty name=\"大众myUsers\"大众 property=\"大众username\"大众 value=\"大众lisi\公众/>
<jsp:setProperty name=\"大众myUsers\"大众 property=\公众password\"大众 value=\"大众888888\"大众/>
--%>
<!--通过URL传参数给属性赋值 -->
<jsp:setProperty name=\公众myUsers\"大众 property=\"大众username\"大众/>
<jsp:setProperty name=\"大众myUsers\"大众 property=\"大众password\"大众 param=\"大众mypass\"大众/>
<!-- 利用传统的表达式办法来获取用户名和密码 -->
<%--
用户名:<%=myUsers.getUsername() %><br>
密码:<%=myUsers.getPassword() %><br>
--%> <!-- 利用getProperty办法来获取用户名和密码 -->
用户名:<jsp:getProperty name=\"大众myUsers\公众 property=\公众username\"大众/> <br>
密码:<jsp:getProperty name=\公众myUsers\公众 property=\公众password\"大众/><br>
<br>
<br>
<a href=\"大众testScope.jsp\"大众>测试javabean的四个浸染域范围</a>
<%
request.getRequestDispatcher(\"大众testScope.jsp\"大众).forward(request, response); %>
</body>
javaben 四大浸染域
page ,仅当前页面有效
request ,通过httpRequest.getAttribute()获取jvabean工具
session ,通过httpSession.getAttribute() 获取javabean工具
application,通过application.getAttribute方法获取javabean 工具。
五、cookie1.概述:
由于http协议的无状态,无法保存用户的状态,以是须要用session和cookie.
cookie 是web做事器保存在客户真个一系列文本信息。它的浸染时记录一些用户的行为,简化上岸,但是随意马虎透露用户信息。
2.jsp创建和利用cookie
创建cookie
Cookie cookie=new Cookie(String ,Object);
写入cookie
response.addCookie(cookie);
读取 cookie
Cookie[] cookies=request.getCookies();
3.cookie的常用方法
setMaxAge();
setValue();
getName();
getValue();
getMaxAge();
举个列子: 利用cookie记住用户上岸的账号密码;
上岸界面:
<body>
<h1>用户登录</h1>
<hr>
<%
request.setCharacterEncoding(\"大众utf-8\"大众);
String username=\"大众\"大众;
String password = \"大众\"大众;
Cookie[] cookies = request.getCookies(); if(cookies!=null&&cookies.length>0)
{ for(Cookie c:cookies)
{ if(c.getName().equals(\"大众username\公众))
{
username = URLDecoder.decode(c.getValue(),\"大众utf-8\"大众);
} if(c.getName().equals(\"大众password\"大众))
{
password = URLDecoder.decode(c.getValue(),\"大众utf-8\"大众);
}
}
} %>
<form name=\"大众loginForm\公众 action=\公众dologin.jsp\"大众 method=\"大众post\"大众>
<table>
<tr>
<td>用户名:</td>
<td><input type=\"大众text\"大众 name=\公众username\"大众 value=\"大众<%=username %>\公众/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type=\公众password\"大众 name=\"大众password\"大众 value=\"大众<%=password %>\公众 /></td>
</tr>
<tr>
<td colspan=\"大众2\"大众><input type=\公众checkbox\"大众 name=\"大众isUseCookie\公众 checked=\"大众checked\"大众/>十天内记住我的登录状态</td>
</tr>
<tr>
<td colspan=\"大众2\"大众 align=\"大众center\"大众><input type=\"大众submit\公众 value=\"大众登录\公众/><input type=\"大众reset\公众 value=\"大众取消\"大众/></td>
</tr>
</table>
</form>
</body>
处理上岸逻辑的jsp
<body>
<h1>登录成功</h1>
<hr>
<br>
<br>
<br>
<%
request.setCharacterEncoding(\公众utf-8\公众); //首先判断用户是否选择了记住登录状态
String[] isUseCookies = request.getParameterValues(\"大众isUseCookie\"大众); if(isUseCookies!=null&&isUseCookies.length>0)
{ //把用户名和密码保存在Cookie工具里面
String username = URLEncoder.encode(request.getParameter(\"大众username\"大众),\公众utf-8\"大众); //利用URLEncoder办理无法在Cookie当中保存中笔墨符串问题
String password = URLEncoder.encode(request.getParameter(\公众password\"大众),\"大众utf-8\"大众);
Cookie usernameCookie = new Cookie(\"大众username\公众,username);
Cookie passwordCookie = new Cookie(\"大众password\公众,password);
usernameCookie.setMaxAge(864000);
passwordCookie.setMaxAge(864000);//设置最大生存期限为10天
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
} else
{
Cookie[] cookies = request.getCookies(); if(cookies!=null&&cookies.length>0)
{ for(Cookie c:cookies)
{ if(c.getName().equals(\"大众username\"大众)||c.getName().equals(\"大众password\"大众))
{
c.setMaxAge(0); //设置Cookie失落效
response.addCookie(c); //重新保存。
}
}
}
} %>
<a href=\"大众users.jsp\"大众 target=\"大众_blank\"大众>查看用户信息</a>
</body>
利用cookie获取用户信息:
<body>
<h1>用户信息</h1>
<hr>
<%
request.setCharacterEncoding(\"大众utf-8\公众);
String username=\公众\"大众;
String password = \"大众\"大众;
Cookie[] cookies = request.getCookies(); if(cookies!=null&&cookies.length>0)
{ for(Cookie c:cookies)
{ if(c.getName().equals(\公众username\"大众))
{
username = URLDecoder.decode(c.getValue(),\"大众utf-8\公众);
} if(c.getName().equals(\公众password\"大众))
{
password = URLDecoder.decode(c.getValue(),\"大众utf-8\"大众);
}
}
} %>
<BR>
<BR>
<BR>
用户名:<%=username %><br>
密码:<%=password %><br>
</body>
3.cookie和 session的差异