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的主要内容,如果未能解决你的问题,请参考以下文章