JavaWeb自学(4)
2021/10/4 17:11:36
本文主要是介绍JavaWeb自学(4),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JavaWeb自学(4)
1、Cookie讲解
CookieDemo01.java
package top.gujiakai.servlet; 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 java.io.IOException; import java.io.PrintWriter; import java.util.Date; /** * Author: Gu Jiakai * Date: 2021/9/29 17:45 * FileName: CookieDemo01 * Description: */ //保存用户上一次访问的时问 public class CookieDemo01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //服务器,告诉你,你来的时间,把这个时间封装成为一个信件,你下次带来,我就知道你来了 //解决中文乱码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=UTF-8"); PrintWriter out = resp.getWriter(); // cookie,服务器端从客户端获取呀; Cookie[] cookies = req.getCookies();//这里返回数组,说明cookie 可f能存在多个 //判断Cookie是否存在 if (cookies != null) { //如果存在怎么办 out.write("你上次访问的时间是:"); for (int i = 0; i < cookies.length; i++) { Cookie cookie = cookies[i]; //获取cookie的名字 if (cookie.getName().equals("lastLoginTime")) { //获取cookie中的值 long lastLoginTime = Long.parseLong(cookie.getValue()); Date date = new Date(lastLoginTime); out.write(date.toLocaleString()); } } } else { out.write("这是您第一次访问本站"); } //服务端给客户端响应一个cookie; Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis() + ""); //cookie有效期为1天 cookie.setMaxAge(24 * 60 * 60); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
CookieDemo02.java
package top.gujiakai.servlet; 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 java.io.IOException; import java.io.PrintWriter; import java.util.Date; /** * Author: Gu Jiakai * Date: 2021/9/29 17:45 * FileName: CookieDemo01 * Description: */ //保存用户上一次访问的时问 public class CookieDemo02 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //创建一个cookie,名字必须要和要删除的名字一致 Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis() + ""); //将cookie有效期设置为0,立马过期 cookie.setMaxAge(0); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
CookieDemo03.java
package top.gujiakai.servlet; 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 java.io.IOException; import java.io.PrintWriter; import java.util.Date; /** * Author: Gu Jiakai * Date: 2021/9/29 18:37 * FileName: CookieDemo03 * Description: */ //中文数据传递 public class CookieDemo03 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); // cookie,服务器端从客户端获取呀; Cookie[] cookies = req.getCookies();//这里返回数组,说明cookie 可f能存在多个 PrintWriter out = resp.getWriter(); //判断Cookie是否存在 if (cookies != null) { //如果存在怎么办 out.write("你上次访问的时间是:"); for (int i = 0; i < cookies.length; i++) { Cookie cookie = cookies[i]; //获取cookie的名字 if (cookie.getName().equals("name")) { // System.out.println(cookie.getValue()); out.write(cookie.getValue()); } } } else { out.write("这是您第一次访问本站"); } Cookie cookie = new Cookie("name", "蔡伟"); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
web.xml
<servlet> <servlet-name>CookieDemo01</servlet-name> <servlet-class>top.gujiakai.servlet.CookieDemo01</servlet-class> </servlet> <servlet-mapping> <servlet-name>CookieDemo01</servlet-name> <url-pattern>/c1</url-pattern> </servlet-mapping> <servlet> <servlet-name>CookieDemo02</servlet-name> <servlet-class>top.gujiakai.servlet.CookieDemo02</servlet-class> </servlet> <servlet-mapping> <servlet-name>CookieDemo02</servlet-name> <url-pattern>/c2</url-pattern> </servlet-mapping> <servlet> <servlet-name>CookieDemo03</servlet-name> <servlet-class>top.gujiakai.servlet.CookieDemo03</servlet-class> </servlet> <servlet-mapping> <servlet-name>CookieDemo03</servlet-name> <url-pattern>/c3</url-pattern> </servlet-mapping>
2、Session讲解
SessionDemo01.java
package top.gujiakai.servlet; import pojo.Person; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * Author: Gu Jiakai * Date: 2021/10/1 17:41 * FileName: SessionDemo01 * Description: */ public class SessionDemo01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决乱码问题 req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=utf-8"); //得到Session HttpSession session = req.getSession(); //给Session中存东西 session.setAttribute("name", new Person("蔡伟", 5)); //获得Session中的ID String sessionid = session.getId(); //判断Session是不是新创建 if (session.isNew()) { resp.getWriter().write("session创建成功,ID:" + sessionid); } else { resp.getWriter().write("session已经在服务器中存在了,ID:" + sessionid); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
SessionDemo02.java
package top.gujiakai.servlet; import pojo.Person; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * Author: Gu Jiakai * Date: 2021/10/1 18:05 * FileName: SessionDemo02 * Description: */ public class SessionDemo02 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决乱码问题 req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=utf-8"); //得到Session HttpSession session = req.getSession(); Person person = (Person) session.getAttribute("name"); System.out.println(person.toString()); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
SessionDemo03.java
package top.gujiakai.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * Author: Gu Jiakai * Date: 2021/10/1 18:14 * FileName: SessionDemo03 * Description: */ public class SessionDemo03 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); session.removeAttribute("name"); session.invalidate(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
Person.java
package pojo; /** * Author: Gu Jiakai * Date: 2021/10/1 18:09 * FileName: Person * Description: */ public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
web.xml
<servlet> <servlet-name>SessionDemo01</servlet-name> <servlet-class>top.gujiakai.servlet.SessionDemo01</servlet-class> </servlet> <servlet-mapping> <servlet-name>SessionDemo01</servlet-name> <url-pattern>/s1</url-pattern> </servlet-mapping> <servlet> <servlet-name>SessionDemo02</servlet-name> <servlet-class>top.gujiakai.servlet.SessionDemo02</servlet-class> </servlet> <servlet-mapping> <servlet-name>SessionDemo02</servlet-name> <url-pattern>/s2</url-pattern> </servlet-mapping> <servlet> <servlet-name>SessionDemo03</servlet-name> <servlet-class>top.gujiakai.servlet.SessionDemo03</servlet-class> </servlet> <servlet-mapping> <servlet-name>SessionDemo03</servlet-name> <url-pattern>/s3</url-pattern> </servlet-mapping> <!-- 设置session的默认失效时间。--> <session-config> <!-- 15分钟后session自动失效,以分钟为单位。--> <session-timeout>15</session-timeout> </session-config>
3、JSP原理剖析
hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% String name="蔡伟"; %> name:<%=name%> </body> </html>
4、JSP基础语法和指令
JSP表达式
<%-- JSP表达式--%> <%--作用:用来将程序的输出输出到客户端。--%> <%--<%=new 变量/表达式%>--%> <%=new java.util.Date()%>
JSP脚本片段
<%--jsp脚本片段。--%> <% int sum = 0; for (int i = 1; i < 100; i++) { sum += i; } out.println("<h1>Sum=" + sum + "</h1>"); %>
<%--脚本片段再实现--%> <% int x=10; out.println(x); %> <p>这是一个JSP文档</p> <% int y=2; out.println(y); %>
<%--在代码嵌入HTML元素--%> <% for (int i = 0; i < 5; i++) { %> <h1>Hello World <%=i%></h1> <% } %>
JSP声明
<%! static { System.out.println("Loading Servlet"); } private int globalVar=0; public void kuang(){ System.out.println("进入了方法kuang!"); } %>
5、JSP内置对象及作用域
pageContextDemo01.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--内置对象--%> <% pageContext.setAttribute("name1","蔡伟1号");//保存的数据只在一个页面中有效 request.setAttribute("name2","蔡伟2号");////保存的数据只在一次请求中有效,请求转发会携带这个数据 session.setAttribute("name3","蔡伟3号");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器 application.setAttribute("name4","蔡伟4号");//保存的数据只在服务器中有效,从打开服务器到关闭服务器 %> <%--脚本片段中的代码,会被原封不动生成到.JSP.java要求: 这里面的代码:必须保证Java语法的正确性 --%> <% //从pagecontext取出,我们通过寻找的方式来 //从底层到高层(作用域):page- >request-->session-->application String name1 = (String) pageContext.findAttribute("name1"); String name2 = (String) pageContext.findAttribute("name2"); String name3 = (String) pageContext.findAttribute("name3"); String name4 = (String) pageContext.findAttribute("name4"); String name5 = (String) pageContext.findAttribute("name5"); pageContext.forward("/pageDemo02.jsp"); %> <%--使用EL表达式输出 ${}--%> <h1>取出的值为:</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> <h3>${name5}</h3> </body> </html>
pageDemo02.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <%--使用EL表达式输出 ${}--%> <h1>取出的值为:</h1> <h3>${name1}</h3> <h3>${name2}</h3> <h3>${name3}</h3> <h3>${name4}</h3> <h3>${name5}</h3> </body> </html>
pageContextDemo03.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% pageContext.forward("/index.jsp"); %> </body> </html>
这篇关于JavaWeb自学(4)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01Java部署教程:新手入门指南
- 2024-11-01Java部署教程:从入门到实践
- 2024-11-01Java订单系统教程:新手入门指南
- 2024-11-01Java分布式教程:新手入门指南
- 2024-11-01Java管理系统教程:新手入门详解
- 2024-11-01Java监控系统教程:从入门到实践
- 2024-11-01SpringCloud Alibaba入门:轻松搭建微服务架构
- 2024-11-01Swagger入门:新手必读指南
- 2024-11-01Swagger入门:轻松搭建API文档
- 2024-11-01uni-APP入门:新手快速上手指南