静态内容

指令

表达式

jsp嵌html当Java碰见了HtmlJsp Docker

小脚本

声明

注释

1.指令:

page指令: 常日位于jsp页面的顶端,同一个页面可以有多个page指令。

include指令:将一个外部文件嵌入到jsp文件中。

taglib指令 :利用标签定义新的自定义标签。

1.1个中page指令语法:

<%@ page 属性=“属性值”>

属性默认值languagejavaimport“”

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 工具。

五、cookie

1.概述:

由于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的差异

sessioncookie在做事端保存信息在客户端保存信息保存的 object类型保存的是 string 类型随会话结束,销毁数据可以长期保存在客户端中主要信息不主要信息如有问题请下方留言来源:互联网