jsp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp相关的知识,希望对你有一定的参考价值。

     JSP(Java Servlet Pages)

JSP:java服务器端的网页,是在服务器端执行。

 JSP可以写html+java+jsp自己的代码

运行原理:jsp-翻译成servlet-编译-访问

 

编码设置

window –prefreences-General-editors-File association-上面选择*.jsp,下面选择MyEclipse JSP Editor

搜索jsp 选择Files and Editor下面的JSP-Encoding里面的iso10646 UTF-8

 

jsp的脚本元素(jsp里面可以编写java代码)

<%!  %>:定义类、变量、方法(不常用)  因为定义的是全局变量

<%=  %>:输出语句,不能有分号 (直接输出到页面上)

<%   %>:定义变量、语句(最常见的)

 

EL表达式

 ${域对象的内容}:获取域对象中的内容  里面不用加双引号,后面也不要加分号

 

会话的技术

会话:打开浏览器,多次访问WEB资源,最后关闭浏览器的过程。

 

cookie技术(客户端技术)

 方法:

Cookie(String name,String value)

addCookie(Cookie cookie):回写到浏览器  response下面的

Cookie[] getCookies():获取cookie的内容,Request下面的

显示上次的访问时间

 第一次访问,输出欢迎。在服务器端,记录当前的时间,把当前的时间通过cookie回写到浏览器

 第二次访问,先获取cookie的内容,显示到浏览器中,记录当前的时间,再次回写到浏览器,输出上次的访问时间

 

cookie的api

Cookie(String name,String value):cookie的构造方法

String getName():获取cookie的名称

String getValue():获取cookie的值

void setMaxAge(int expiry):设置有效时间,以秒为单位

void setPath(String url):设置有效路径

void setDomain(String pattern):设置有效域名

 

会话级别的cookie:默认保存到浏览器的内存中

持久性的cookie:把cookie存储到磁盘中,使用setMaxAge()进行设置。

  删除持久性cookie的话,将cookie设置为0。删除的时候,虚拟路径必须一致,否则不会删除。

 

 cookie案例:显示上次浏览时间

package com.cn.Cookie;

import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.cn.Utils.CookieUtil;

public class LastServletcookie extends HttpServlet {
	/**
	 * 1、获取所有的cookie,判断是否是第一次访问 2、如果是第一次访问 输出欢迎 3、如果不是第一次访问 获取当前的时间,输出到浏览器
	 * 4、记录当前的时间,回写到浏览器
	 * 
	 * 
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 设置字符中文乱码问题
		response.setContentType("text/html;charset=UTF-8");
		// 记录当前时间
		java.util.Date date = new java.util.Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String s = sdf.format(date);
		// 回写到浏览器 使用cookie回写
		Cookie c2 = new Cookie("last", s);
		response.addCookie(c2);

		// 获取所有的cookie
		Cookie[] cookies = request.getCookies();
		/*
		 * 通过指定名称来查找cookie 最好编写一个方法,方便多次使用,这里用的是工具类
		 */
		Cookie c = CookieUtil.getCookieByName(cookies, "last");
		// 判断,如果cookie为空格的话,表示第一次访问,输出欢迎
		if (c == null) {
			response.getWriter().write("<h1>欢迎你第一次访问</h1>");
		} else {
			// 获取cookie的值,输出到浏览器
			String value = c.getValue();
			response.getWriter().write("<h1>你上次的访问时间为" + value + "</h1>");
		}

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

  

package com.cn.Utils;

import javax.servlet.http.Cookie;

/**
 * cookie的工具类
 * 
 * @author Administrator
 * 
 */
public class CookieUtil {
	/**
	 * 通过指定名称查找指定的cookie
	 * 
	 * @param c
	 * @param name
	 * @return
	 */
	public static Cookie getCookieByName(Cookie[] cookies, String name) {
		if (cookies == null) {
			return null;
		} else {
			/*
			 * 循环遍历。目的:获取cookie的name和传递的 name进行匹配, 如果匹配成功,返回当前的cookie。
			 */
			for (Cookie cookie : cookies) {
				if (cookie.getName().equals(name)) {
					return cookie;
				}
			}
		}
		return null;

	}
}

  

以上是关于jsp的主要内容,如果未能解决你的问题,请参考以下文章

JSP基础

day06-jsp

jsp

JSP语法

JSP 语法

JSP 基础语法