From 3c8db183a519e71dc2e8b9bfac1765115c51bb86 Mon Sep 17 00:00:00 2001 From: lotus Date: Tue, 26 Nov 2024 15:35:29 +0800 Subject: [PATCH] =?UTF-8?q?Java=E7=AC=AC=E5=9B=9B=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java/com/demo/ExcelServlet.java | 39 ++++++++++++++++++++ java/com/demo/GetCookie.java | 37 +++++++++++++++++++ java/com/demo/GuessNumberServlet.java | 53 +++++++++++++++++++++++++++ java/com/demo/SendCookie.java | 33 +++++++++++++++++ java/com/demo/ShowSession.java | 45 +++++++++++++++++++++++ java/com/demo/excel.java | 21 ----------- webapp/counter.jsp | 7 ++++ webapp/errorHandler.jsp | 8 ++++ webapp/expression.jsp | 27 ++++++++++++++ webapp/hello.jsp | 43 +++++++++++++++------- webapp/import_test.jsp | 15 ++++++++ webapp/persistent_counter.jsp | 34 +++++++++++++++++ 12 files changed, 328 insertions(+), 34 deletions(-) create mode 100644 java/com/demo/ExcelServlet.java create mode 100644 java/com/demo/GetCookie.java create mode 100644 java/com/demo/GuessNumberServlet.java create mode 100644 java/com/demo/SendCookie.java create mode 100644 java/com/demo/ShowSession.java delete mode 100644 java/com/demo/excel.java create mode 100644 webapp/counter.jsp create mode 100644 webapp/errorHandler.jsp create mode 100644 webapp/expression.jsp create mode 100644 webapp/import_test.jsp create mode 100644 webapp/persistent_counter.jsp diff --git a/java/com/demo/ExcelServlet.java b/java/com/demo/ExcelServlet.java new file mode 100644 index 0000000..a6a7a1a --- /dev/null +++ b/java/com/demo/ExcelServlet.java @@ -0,0 +1,39 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/excel.do") +public class ExcelServlet extends HttpServlet { + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // 设置响应头,告诉浏览器这是一个HTML页面 + response.setContentType("text/html;charset=gb2312"); + + // 获取输出流 + PrintWriter out = response.getWriter(); + + // 输出HTML内容 + out.println(""); + out.println(""); + out.println(""); + out.println("学生信息表"); + out.println(""); + out.println(""); + out.println(""); + out.println("

学生信息表

"); + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println("
学号姓名性别年龄所在系
95001李勇20信息
95002刘晨19数学
"); + out.println(""); + out.println(""); + } +} \ No newline at end of file diff --git a/java/com/demo/GetCookie.java b/java/com/demo/GetCookie.java new file mode 100644 index 0000000..41d14b7 --- /dev/null +++ b/java/com/demo/GetCookie.java @@ -0,0 +1,37 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/GetCookie") +public class GetCookie extends HttpServlet { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException { + + response.setContentType("text/html"); + PrintWriter out = response.getWriter(); + + out.println("read cookies"); + out.println("

Cookies received from browser:

"); + + // 获取客户端发送的所有Cookie + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + out.println("Name: " + cookie.getName() + ", Value: " + cookie.getValue() + "
"); + } + } else { + out.println("No cookies found."); + } + + out.println(""); + } +} \ No newline at end of file diff --git a/java/com/demo/GuessNumberServlet.java b/java/com/demo/GuessNumberServlet.java new file mode 100644 index 0000000..f63ab28 --- /dev/null +++ b/java/com/demo/GuessNumberServlet.java @@ -0,0 +1,53 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/GuessNumberServlet") +public class GuessNumberServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + int magic = (int) (Math.random() * 101); + HttpSession session = request.getSession(); + session.setAttribute("num", new Integer(magic)); + + response.setContentType("text/html;charset=utf-8"); + PrintWriter out = response.getWriter(); + + out.println(""); + out.println("我想出一个0到100之间的数,请你猜!"); + out.println("
"); + out.println(""); + out.println(""); + out.println("
"); + out.println(""); + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + int guess = Integer.parseInt(request.getParameter("guess")); + HttpSession session = request.getSession(); + int magic = (Integer) session.getAttribute("num"); + response.setContentType("text/html;charset=utf-8"); + PrintWriter out = response.getWriter(); + out.println(""); + if (guess == magic) { + session.invalidate(); // 销毁会话对象 + out.println("祝贺你,答对了!"); + out.println("再猜一次."); + } else if (guess > magic) { + out.println("太大了! 请重猜!"); + } else { + out.println("太小了! 请重猜!"); + } + out.println("
"); + out.println(""); + out.println(""); + out.println("
"); + out.println(""); + } +} \ No newline at end of file diff --git a/java/com/demo/SendCookie.java b/java/com/demo/SendCookie.java new file mode 100644 index 0000000..c8bcd25 --- /dev/null +++ b/java/com/demo/SendCookie.java @@ -0,0 +1,33 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/SendCookie") +public class SendCookie extends HttpServlet { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException { + + // 创建一个Cookie对象 + Cookie userCookie = new Cookie("user", "uid1234"); + // 设置Cookie的有效期为7天 + userCookie.setMaxAge(60 * 60 * 24 * 7); + // 将Cookie添加到响应中 + response.addCookie(userCookie); + + response.setContentType("text/html"); + PrintWriter out = response.getWriter(); + + out.println("add cookies"); + out.println("

A cookie has been sent to browser

"); + out.println(""); + } +} \ No newline at end of file diff --git a/java/com/demo/ShowSession.java b/java/com/demo/ShowSession.java new file mode 100644 index 0000000..ea13b3b --- /dev/null +++ b/java/com/demo/ShowSession.java @@ -0,0 +1,45 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.*; +import java.util.Date; + +@WebServlet("/showSession") +public class ShowSession extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + response.setContentType("text/html"); + HttpSession session = request.getSession(); + String heading = null; + Integer accessCount = (Integer) session.getAttribute("accessCount"); + + if (accessCount == null) { + accessCount = new Integer(0); + heading = "Welcome, Newcomer"; + } else { + heading = "Welcome Back."; + accessCount = new Integer(accessCount.intValue() + 1); + } + session.setAttribute("accessCount", accessCount); + + PrintWriter out = response.getWriter(); + out.println(""); + out.println("Session Tracking Example"); + out.println("
"); + out.println("

" + heading + "

"); + out.println("

Information about your session.

"); + out.println(""); + out.println("
Info TypeValue\n"); + out.println("
ID" + session.getId() + "\n"); + out.println("
Creation Time:"); + out.println("" + new Date(session.getCreationTime()) + "\n"); + out.println("
Time of last access:"); + out.println("" + new Date(session.getLastAccessedTime()) + "\n"); + out.println("
Access number:" + accessCount + "\n"); + out.println("
"); + } +} \ No newline at end of file diff --git a/java/com/demo/excel.java b/java/com/demo/excel.java deleted file mode 100644 index 4237ea2..0000000 --- a/java/com/demo/excel.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.demo; -import java.io.*; -import java.util.*; -import javax.servlet.*; -import javax.servlet.http.*; -import javax.servlet.annotation.WebServlet; - -@WebServlet("/ExcelServlet") -public class excel extends HttpServlet{ - public void doGet(HttpServletRequest request, - HttpServletResponse response) - throws ServletException, IOException{ - -response.setHeader("Content-Encoding","gb2312"); response.setContentType("application/vnd.ms-excel;charset=gb2312"); - PrintWriter out = response.getWriter(); - - out.println("学号\t姓名\t性别\t年龄\t所在系"); - out.println("95001\t李勇\t男\t20\t信息"); - out.println("95002\t刘晨\t女\t19\t数学"); - } -} diff --git a/webapp/counter.jsp b/webapp/counter.jsp new file mode 100644 index 0000000..54e6ccf --- /dev/null +++ b/webapp/counter.jsp @@ -0,0 +1,7 @@ + +<%@ page language="java" %> +<%! int count = 0; %> +<% count++; %> +Welcome! You are visitor number +<%= count %> + diff --git a/webapp/errorHandler.jsp b/webapp/errorHandler.jsp new file mode 100644 index 0000000..b987605 --- /dev/null +++ b/webapp/errorHandler.jsp @@ -0,0 +1,8 @@ +<%@ page contentType="text/html; charset=gb2312" %> +<%@ page isErrorPage="true" %> + + +ܱ<%= exception.getMessage() %>
+ԣ + + \ No newline at end of file diff --git a/webapp/expression.jsp b/webapp/expression.jsp new file mode 100644 index 0000000..014c71b --- /dev/null +++ b/webapp/expression.jsp @@ -0,0 +1,27 @@ + +<%@ page language="java" %> +<%! +int anInt = 3; +boolean aBool = true; +Integer anIntObj = new Integer(3); +Float aFloatObj = new Float(8.6); +String str = "some string"; +StringBuffer sBuff = new StringBuffer(); +public char getChar(){ +return 'A'; +} +%> +<%= 500 %> +<%= anInt*3.5/100-500 %> +<%= aBool %> +<%= false %> +<%= !false %> +<%= getChar() %> +<%= Math.random() %> +<%= aFloatObj %> +<%= aFloatObj.floatValue() %> +<%= aFloatObj.toString() %> +<%= aBool %> +<% int i = 20; %> +<% sBuff.setLength(12); %> + \ No newline at end of file diff --git a/webapp/hello.jsp b/webapp/hello.jsp index b7524f9..e98372e 100644 --- a/webapp/hello.jsp +++ b/webapp/hello.jsp @@ -1,16 +1,33 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> - +<%-- <%@ page language="java" contentType="text/html; charset=UTF-8" --%> +<%-- pageEncoding="UTF-8"%> --%> + + + + + + + + + + +<%-- The time now is:<%=new java.util.Date()%> --%> + + + + +<%@ page contentType="text/html;charset=gb2312" %> +<%@ page errorPage="errorHandler.jsp" %> - - -A Simple JSP page - -

Hello,World!

- - The time now is:<%=new java.util.Date()%> - +<% +String name = request.getParameter("name"); +if (name == null) { + throw new RuntimeException("ûָname ԡ"); +} else { + // ַnameַתΪֱ + name = new String(name.getBytes("iso-8859-1"), "gb2312"); +} +%> +Hello, <%= name %> - + \ No newline at end of file diff --git a/webapp/import_test.jsp b/webapp/import_test.jsp new file mode 100644 index 0000000..448c829 --- /dev/null +++ b/webapp/import_test.jsp @@ -0,0 +1,15 @@ +<%@ page import="java.util.Date,java.text.DateFormat" %> +<%@ page contentType="text/html;charset=gb2312" %> + +pageָʾ + +

ʹpageָjava.util.Date

+<% +Date date = new Date(); +String s = DateFormat.getDateInstance().format(date); +String s2 = DateFormat.getDateInstance(DateFormat.FULL).format(date); +%> +

ڵʱǣ<%=s%>

+

ڵʱǣ<%=s2%>

+ + \ No newline at end of file diff --git a/webapp/persistent_counter.jsp b/webapp/persistent_counter.jsp new file mode 100644 index 0000000..6951fa9 --- /dev/null +++ b/webapp/persistent_counter.jsp @@ -0,0 +1,34 @@ +<%@ page language="java" import="java.io.*" %> +<%! +int count = 0; +String dbPath; + +public void jspInit() { + try { + dbPath = getServletContext().getRealPath("/WEB-INF/counter.db"); + FileInputStream fis = new FileInputStream(dbPath); + DataInputStream dis = new DataInputStream(fis); + count = dis.readInt(); + dis.close(); + } catch (Exception e) { + log("Error loading persistent counter", e); + } +} + +public void jspDestroy() { + try { + FileOutputStream fos = new FileOutputStream(dbPath); + DataOutputStream dos = new DataOutputStream(fos); + dos.writeInt(count); + dos.close(); + } catch (Exception e) { + log("Error storing persistent counter", e); + } +} +%> + +<%-- 下面是向浏览器输出的主要内容,它将成为产生的_jspService()方法的一部分 --%> + +<% count++; %> +Welcome! You are <%= count %> th visitor(s). + \ No newline at end of file