Servlet和JSP

1、会话管理:
1)URL重写:(少量信息科使用此方式)
通常使用A标签:url?key=value&key2=value2....;(URL和token建用?隔开,token间用&隔开);
--------------------------------------------------------------------------------------------------------------------------------------------------
2)隐藏域:(仅当网页有表单的时候有效,但与URL重写一样不适合跨越多个界面)
<input type="hidden" name="" value="">//此隐藏域可跟随表单提交
--------------------------------------------------------------------------------------------------------------------------------------------------
3)*Cookies:(可在多个页面间传递信息)
创建一个cookie:Cookie cookie = new Cookie(key, value);//创建完后可设置domain、path、maxAge属性,maxAge是生命周期
HttpServletResponse.addCookie(cookie);//将cookie发送给浏览器
ServletActionContext.getResponse().addCookie(cookie);//此方法适合在struts2中使用
***浏览器在访问服务器的时候,会将之前收到的cookies一并发送给服务器***
服务器取得cookie方法:
Cookie[] cookies = request.getCookies();
Cookie cook = null;
if(cookies != null){
for(Cookie ck : cookies ){
if(ck.getName().equals("name")){
cook = ck;
break;
}
}
}
删除原有cookie的方法:(创建同名cookie,并将maxAge设为0)
Cookie cookie = new Cookie("name", "");
cookie.setMaxAge(0);
HttpServletResponse.addCookie(cookie);
前台获得cookie方法:
a.导jquery.cookie.js:$.cookie("key");
b.使用EL表达式:${cookie.cookieKey.value}//获得cookie值; ${cookie.cookieKey.path}//获得cookie的路径值
--------------------------------------------------------------------------------------------------------------------------------------------------
4)***HttpSession对象:(最强大和适用)(占用内存)
HttpSession getSession();//使用getSession().setAttribute()方法来向session中存值;getSession().getAttribute()取值;
部署描述符session-timeout设置session过期时间;
setMaxInactiveInterval单独对某个session设置时间;
==================================================================================================================================================
2、EL表达式语言:${}
1)访问对象属性:
${object.name}或者${object["name"]}后者更为规范
2)访问javaBean:
${bean.stu_name}//访问bean中的stu_name属性
3)关系运算符:
${statement? a:b}//如果statement计算的结果为真,则输出结果a,如果为假,输出结果b
4)empty运算符:
${empty x}//如果x是长度为0的字符串,或者是空map、空数组、空集合泽返回true
==================================================================================================================================================
3、JSTL标签:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
1)set标签:
//以下创建了字符串the wisest fool,并将它赋值给页面范围变量fool
<c:set var="fool" value="the wisest fool"/>
//以下创建了job的有界变量,引用请求范围的对象position
<c:set var="job" value="${requestScope.position}" scope="page|request|session|application"/>
//下面的set是将字符串"tokyo"赋予有界对象address的city属性
<c:set target="${address}" property="city" value="tokyo"/>
--------------------------------------------------------------------------------------------------------------------------------------------------
2)remove标签:
//用于删除有界变量,但无法删除引用的对象
<c:remove var="varName" [scope="page|request|session|application"]/>
--------------------------------------------------------------------------------------------------------------------------------------------------
3)if标签:判断test中的运算结果,若为true时,执行body content,否则不执行。为了模仿if...else 可使用两个<c:if>标签,条件设置完全相反
<c:if test="testCondition" [var="varName"] [scope="page|request|session|application"]>
body content
</c:if>
--------------------------------------------------------------------------------------------------------------------------------------------------
4)choose、when和otherwise标签:(类似于JAVA中的switch和case)
<c:choose>
<c:when test="testCondition">
body content
</c:when>
<c:when test="testCondition2">
body content
</c:when>
<c:otherwise>//放在最后,当以上when全部为假不执行时,执行otherwise中的body content
other body content
</c:otherwise>
</c:choose>
--------------------------------------------------------------------------------------------------------------------------------------------------
5)forEach标签:
//遍历collection集合,显示stu_name属性的值
<c:forEach items="collection" var="varName" [varStatus="num"] [begin="begin"] [end="end"] [step="step"]>
${varName.stu_name}
</c:forEach>
//与map结合使用
<c:forEach item="map" var="varName">
${varName.key}
${varName.value}
</c:forEach>
--------------------------------------------------------------------------------------------------------------------------------------------------
6)forTokens标签:用于遍历特定分隔符隔开的字符串等
<c:forTokens var="item" items="a,b,c,d" delims=",">
<c:out value="${item}"/>
</c:forTokens>
--------------------------------------------------------------------------------------------------------------------------------------------------
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>//调用函数的格式要用EL表达式:${fn:functionName}
7)contains函数:用于测试一个字符串中是否包含指定子字符串(containsIgnoreCase函数与contains类似,但区分大小写)
${fn:contains(myString, "hello")}//判断myString字符串中是否包含hello
--------------------------------------------------------------------------------------------------------------------------------------------------
8)endWith函数:用于测试一个字符串是否已某个指定后缀结尾(startWith与之相反)
${fn:endWith("hello world","world")}
--------------------------------------------------------------------------------------------------------------------------------------------------
9)indexOf函数:用于返回指定子字符串在某个字符串中第一次出现时的索引
${fn:indexOf("hello","e")}//返回1
--------------------------------------------------------------------------------------------------------------------------------------------------
10)join函数:用于将一个数组用特定符号分割开
${fn:join(array, ",")}
--------------------------------------------------------------------------------------------------------------------------------------------------
11)length函数:用于返回集合中的项目书,或者字符串的字符数
--------------------------------------------------------------------------------------------------------------------------------------------------
12)replace函数:将字符串中出现的所有begin用after替换
${fn:replace("hello world", "l", "L")}//结果为heLLo worLd
--------------------------------------------------------------------------------------------------------------------------------------------------
13)split函数:用于将一个字符串分离成一个字符串数组,与join相反
${fn:split("my,world", ",")}
--------------------------------------------------------------------------------------------------------------------------------------------------
14)substring函数:返回一个从指定的起始索引到终止索引的子字符串(substringAfter\substringBefore函数返回子字符串第一次出现后\前的部分)
${fn:substring("hello world",0,4)}
--------------------------------------------------------------------------------------------------------------------------------------------------
15)toLowerCase\toUpperCase函数:用于将字符串转换成小写\大写版本
-------------------------------------------------------------------------------------------------------------------------------------------------- 16)trim函数:用于删除一个字符串开头和结尾的空白
${fn:trim(" hello ")}//返回hello
==================================================================================================================================================

时间: 2024-12-14 15:20:45

Servlet和JSP的相关文章

servlet和jsp学习指南(一)servlet

近期接触了些纯servlet与jsp的编程项目,顺便把<servlet和jsp学习指南>这本书拿出来看看,感悟良多.记下随笔,以便会议. 要编写一个servlet首先要实现Servlet或者继承HttpServlet package test.com.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet

修改MyEclipse默认的Servlet和jsp代码模板

一.修改Servlet的默认模板代码 使用MyEclipse创建Servlet时,根据默认的Servlet模板生成的Servlet代码如下: 1 package gacl.servlet.study; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 i

servlet和Jsp生命周期解读

一.servlet的工作工程 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应.常用的tomcat.jboss.weblogic都是Servlet容器)中的,其生命周期是由容器来管理. 二.Servlet生命周期 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应

Servlet,jsp,JSP技术 ,JSP编程

 一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 浏览器解析的时候是需要HTTP协议的,JAVA普通类有没有HTTP协议呢? 普通类没有. JAVA-(class)浏览器如何访问呢? 浏览器---HTML A   JAVA通过IO流生成HTML--->浏览器 B   JAVA 需要加入HTTP协议 解决上面2个问题可以通过 Servlet C  如

Servlet 和 JSP 概述

说到Java web开发,就不得不提Servlet 和 JSP.这两者是java web开发技术.虽然现在有这么多的web框架,公司中很少会用这两个技术来直接开发项目,但是理解了这两个技术,一则会让你对web的基础知识要很深的了解,二则学其他的相比来说要更好理解点. 一.Servlet 1. 什么是servlet? servlet是运行在Web服务器上的java程序.是一个中间层,负责连接来自Web浏览器或其他Http请求和Http服务器上的数据库或应用程序. 2. Servlet的作用是什么?

Servlet与JSP的异同

1.什么是Servlet A Java servlet is a Java programming language program that extends the capabilities of a server. Although servlets can respond to any types of requests, they most commonly implement applications hosted on Web servers.Such Web servlets ar

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注冊模块(附完整源代码)

近期看老罗视频,做了一个简单的用户注冊系统.用户通过网页(JSP)输入用户名.真名和password,Servlet接收后通过JDBC将信息保存到MySQL中.尽管是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理.以下先上源代码: 一.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String

初识Servlet和JSP

一.简介Servlet和JSP sun首先推出了Servlet规范,它是一种小型的Java程序,全部是由java写成并且生成HTML,扩展了web服务器的功能,是位于Web服务器内部的服务器端的Java应用程序. 后来,sun就推出了类似于ASP的镶嵌型的JSP,JSP页面由HTML代码和嵌入其中的Java代码所组成.服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端浏览器. 二.Servlet和JSP的关系 Serlet是一个早期的不完善的产品,写b

【jsp】Servlet与jsp之间的传值

Servlet与JSP 之间的传值有两种情况:JSP -> Servlet, Servlet -> JSP. 通过对象 request和 session (不考虑 application)完成传值. 一.JSP -> servlet JSP页面有3种方法向 servlet传值: form表单.URL <!-- JSP page --> ... <%...... session.setAttribute("testSession","Hell

Tomcat、Servlet、JSP的版本兼容性

参考地址:http://tomcat.apache.org/whichversion.html 不同版本的Tomcat实现了不同版本的Servlet和JSP规范. Different versions of Apache Tomcat are available for different versions of the Servlet and JSP specifications. The mapping between the specifications and the respectiv