commit 2ab4c681af814e30f259b001124c06c05a2c449a Author: lotus Date: Mon Nov 25 19:06:50 2024 +0800 第三次java作业 diff --git a/java/com/demo/ConfigDemoServlet.java b/java/com/demo/ConfigDemoServlet.java new file mode 100644 index 0000000..8af4f0b --- /dev/null +++ b/java/com/demo/ConfigDemoServlet.java @@ -0,0 +1,44 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; + +@WebServlet( + urlPatterns = { "/configDemo.do" }, + initParams = { + @WebInitParam(name = "email", value = "hacker@163.com"), + @WebInitParam(name = "telephone", value = "8899123") + } +) +public class ConfigDemoServlet extends HttpServlet { + /** + * + */ + private static final long serialVersionUID = 1L; + String servletName = null; + ServletConfig config = null; + String email = null; + String telephone = null; + + public void init(ServletConfig config) throws ServletException { + super.init(config); + this.config = config; + servletName = config.getServletName(); + email = config.getInitParameter("email"); + telephone = config.getInitParameter("telephone"); + } + + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + response.setContentType("text/html;charset=gb2312"); + PrintWriter out = response.getWriter(); + out.println(""); + out.println("Servlet名称:" + servletName + "
"); + out.println("Email地址:" + email + "
"); + out.println("电话:" + telephone); + out.println(""); + } +} \ No newline at end of file diff --git a/java/com/demo/FileUploadServlet.java b/java/com/demo/FileUploadServlet.java new file mode 100644 index 0000000..8b05a73 --- /dev/null +++ b/java/com/demo/FileUploadServlet.java @@ -0,0 +1,57 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; + +@WebServlet(name = "FileUploadServlet", urlPatterns = {"/fileUpload.do"}) +@MultipartConfig(location = "D:\\", fileSizeThreshold = 1024) +public class FileUploadServlet extends HttpServlet { + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // 设置请求和响应的字符编码为UTF-8 + request.setCharacterEncoding("UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=UTF-8"); + + // 返回Web应用程序文档根目录 + String path = this.getServletContext().getRealPath("/"); + String mnumber = request.getParameter("mnumber"); + Part p = request.getPart("fileName"); + + PrintWriter out = response.getWriter(); + out.println(""); + out.println(""); + + if (p.getSize() > 1024 * 1024) { // 上传的文件不能超过1MB大小 + p.delete(); + out.println("文件太大,不能上传!"); + } else { + path = path + "\\student\\" + mnumber; + File f = new File(path); + if (!f.exists()) { // 若目录不存在,则创建目录 + f.mkdirs(); + } + + // 得到文件名 + String h = p.getHeader("content-disposition"); + String fname = getFileName(h); + + p.write(path + "\\" + fname); + out.println("文件上传成功!"); + } + out.println(""); + } + + private String getFileName(String contentDisposition) { + String[] parts = contentDisposition.split(";"); + for (String part : parts) { + if (part.trim().startsWith("filename")) { + return part.substring(part.indexOf('=') + 1).trim().replace("\"", ""); + } + } + return null; + } +} \ No newline at end of file diff --git a/java/com/demo/FirstServlet.java b/java/com/demo/FirstServlet.java new file mode 100644 index 0000000..fe48b53 --- /dev/null +++ b/java/com/demo/FirstServlet.java @@ -0,0 +1,85 @@ +//package com.demo; +// +//import java.io.*; +//import javax.servlet.*; +//import javax.servlet.http.*; +//import javax.servlet.annotation.WebServlet; +//import com.demo.Student; +// +//@WebServlet("/firstservlet") +//public class FirstServlet extends HttpServlet { +// private ServletContext context; +// +// @Override +// public void init(ServletConfig config) throws ServletException { +// super.init(config); +// context = getServletContext(); +// } +// +// @Override +// protected void doGet(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// doPost(request, response); +// } +// +// @Override +// protected void doPost(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// // 设置编码 +// request.setCharacterEncoding("UTF-8"); +// response.setCharacterEncoding("UTF-8"); +// response.setContentType("text/html;charset=UTF-8"); +// +// // 获取参数并进行空值检查 +// String snumber = request.getParameter("snumber"); +// String sname = request.getParameter("sname"); +// +// if (snumber != null && sname != null) { +// // 转换编码 +// snumber = new String(snumber.getBytes("UTF-8"), "UTF-8"); +// sname = new String(sname.getBytes("UTF-8"), "UTF-8"); +// +// // 创建学生对象 +// Student stud = new Student(snumber, sname); +// request.setAttribute("stud", stud); +// +// // 转发请求 +// RequestDispatcher view = request.getRequestDispatcher("/secondservlet"); +// view.forward(request, response); +// } else { +// // 参数为空时的处理 +// response.getWriter().println("错误:学号或姓名不能为空!"); +// } +// } +//} + + +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/FirstServlet") +public class FirstServlet extends HttpServlet { + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // 获取表单参数 + String sno = request.getParameter("sno"); + String name = request.getParameter("name"); + + // 创建Student对象 + Student student = new Student(sno, name); + + // 将Student对象存储在ServletContext中 + ServletContext context = getServletContext(); + context.setAttribute("student", student); + + // 转发请求到SecondServlet + RequestDispatcher dispatcher = context.getRequestDispatcher("/SecondServlet"); + dispatcher.forward(request, response); + } +} + diff --git a/java/com/demo/HelloServlet.java b/java/com/demo/HelloServlet.java new file mode 100644 index 0000000..62b7769 --- /dev/null +++ b/java/com/demo/HelloServlet.java @@ -0,0 +1,36 @@ +package com.demo; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@WebServlet("/HelloServlet") +public class HelloServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + + try (PrintWriter out = response.getWriter()) { + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println("Hello Servlet"); + out.println(""); + out.println(""); + out.println(""); + out.println("

Hello, World!

"); + out.println("

The time now is: " + new java.util.Date() + "

"); + out.println(""); + out.println(""); + } + } +} diff --git a/java/com/demo/HelloUserServlet2.java b/java/com/demo/HelloUserServlet2.java new file mode 100644 index 0000000..5e49825 --- /dev/null +++ b/java/com/demo/HelloUserServlet2.java @@ -0,0 +1,41 @@ +package com.demo; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/HelloUserServlet2") +public class HelloUserServlet2 extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // 获取请求参数 + String userName = request.getParameter("userName"); + if (userName == null || userName.trim().isEmpty()) { + userName = "Guest"; + } + + // 设置响应内容类型 + response.setContentType("text/html;charset=UTF-8"); + + try (PrintWriter out = response.getWriter()) { + // 输出HTML内容 + out.println(""); + out.println(""); + out.println(""); + out.println("Hello User"); + out.println(""); + out.println(""); + out.println("

Hello, " + userName + "

"); + out.println(""); + out.println(""); + } + } +} diff --git a/java/com/demo/ParamServlet.java b/java/com/demo/ParamServlet.java new file mode 100644 index 0000000..910b12e --- /dev/null +++ b/java/com/demo/ParamServlet.java @@ -0,0 +1,49 @@ +package com.demo; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/ParamServlet") +public class ParamServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=UTF-8"); + + String name = request.getParameter("name"); + if (name == null) { + name = "未填写"; + } else { + name = new String(name.getBytes("iso8859-1"), "UTF-8"); + } + + String age = request.getParameter("age"); + if (age == null) { + age = "未填写"; + } + + PrintWriter out = response.getWriter(); + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println("

姓名:" + name + "

"); + out.println("

年龄:" + age + "

"); + out.println(""); + out.println(""); + } + + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + doGet(request, response); + } +} diff --git a/java/com/demo/RedirectServlet.java b/java/com/demo/RedirectServlet.java new file mode 100644 index 0000000..bed4054 --- /dev/null +++ b/java/com/demo/RedirectServlet.java @@ -0,0 +1,29 @@ +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/RedirectServlet") +public class RedirectServlet extends HttpServlet { + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException { + + // 设置请求和响应的字符编码为UTF-8 + request.setCharacterEncoding("UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/html;charset=UTF-8"); + + // 获取用户名和密码值 + String username = request.getParameter("username"); + String password = request.getParameter("password"); + + // 判断用户名和密码是否正确 + if ("admin".equals(username) && "admin".equals(password)) { + response.sendRedirect("welcome.html"); + } else { + response.sendRedirect("error.html"); + } + } +} \ No newline at end of file diff --git a/java/com/demo/SecondServlet.java b/java/com/demo/SecondServlet.java new file mode 100644 index 0000000..3c42a14 --- /dev/null +++ b/java/com/demo/SecondServlet.java @@ -0,0 +1,73 @@ +//package com.demo; +// +//import java.io.*; +//import javax.servlet.*; +//import javax.servlet.http.*; +//import javax.servlet.annotation.WebServlet; +// +//@WebServlet("/secondservlet") // 修改映射路径 +//public class SecondServlet extends HttpServlet { +// private static final long serialVersionUID = 1L; +// +// @Override +// public void doGet(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// doPost(request, response); +// } +// +// @Override +// public void doPost(HttpServletRequest request, HttpServletResponse response) +// throws ServletException, IOException { +// response.setContentType("text/html;charset=UTF-8"); +// PrintWriter out = response.getWriter(); +// +// Student stud = (Student)request.getAttribute("stud"); +// +// out.println(""); +// out.println("
"); +// +// if (stud != null) { +// out.println("学号:" + stud.getSno() + "
"); +// out.println("姓名:" + stud.getName() + "
"); +// } else { +// out.println("错误:未能获取到学生信息
"); +// } +// +// out.println("返回输入页面"); +// out.println("
"); +// out.println(""); +// out.flush(); +// out.close(); +// } +//} + + +package com.demo; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/SecondServlet") +public class SecondServlet extends HttpServlet { + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // 获取ServletContext中的Student对象 + ServletContext context = getServletContext(); + Student student = (Student) context.getAttribute("student"); + + // 设置响应内容类型 + response.setContentType("text/html;charset=UTF-8"); + PrintWriter out = response.getWriter(); + + // 输出学生信息 + out.println(""); + out.println("

学生信息

"); + out.println("

学号:" + student.getSno() + "

"); + out.println("

姓名:" + student.getName() + "

"); + out.println("返回输入页面"); + out.println(""); + } +} diff --git a/java/com/demo/ShowTimeServlet.java b/java/com/demo/ShowTimeServlet.java new file mode 100644 index 0000000..2aa6aac --- /dev/null +++ b/java/com/demo/ShowTimeServlet.java @@ -0,0 +1,41 @@ +package com.demo; + +import java.io.*; +import java.util.*; +import java.text.SimpleDateFormat; +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.WebServlet; + +@WebServlet("/ShowTimeServlet") +public class ShowTimeServlet extends HttpServlet { + /** + * + */ + private static final long serialVersionUID = 1L; + + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + response.setContentType("text/html;charset=gb2312"); + response.setCharacterEncoding("gb2312"); + + PrintWriter out = response.getWriter(); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm:ss"); + String s = sdf.format(date); + + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println(""); + out.println("显示时间"); + out.println(""); + out.println(""); + out.println("

每2秒钟刷新一次页面

"); + out.println("

现在的时间是:" + s + "

"); + out.println(""); + out.println(""); + } +} \ No newline at end of file diff --git a/java/com/demo/Student.java b/java/com/demo/Student.java new file mode 100644 index 0000000..0d2cbc5 --- /dev/null +++ b/java/com/demo/Student.java @@ -0,0 +1,61 @@ +//package com.demo; +// +//public class Student { +// private String sno; +// private String name; +// +// // 添加无参构造方法 +// public Student() { +// } +// +// // 添加带参数的构造方法 +// public Student(String sno, String name) { +// this.sno = sno; +// this.name = name; +// } +// +// public void setSno(String sno) { +// this.sno = sno; +// } +// +// public String getSno() { +// return this.sno; +// } +// +// public void setName(String name) { +// this.name = name; +// } +// +// public String getName() { +// return this.name; +// } +//} + + +package com.demo; + +public class Student { + private String sno; + private String name; + + public Student(String sno, String name) { + this.sno = sno; + this.name = name; + } + + public String getSno() { + return sno; + } + + public void setSno(String sno) { + this.sno = sno; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} \ No newline at end of file diff --git a/java/com/demo/excel.java b/java/com/demo/excel.java new file mode 100644 index 0000000..4237ea2 --- /dev/null +++ b/java/com/demo/excel.java @@ -0,0 +1,21 @@ +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/FileUpload.html b/webapp/FileUpload.html new file mode 100644 index 0000000..15ae797 --- /dev/null +++ b/webapp/FileUpload.html @@ -0,0 +1,28 @@ + + + + + 文件上传 + + +

+ + + + + + + + + + + + + + + + +
文件上传
会员号:
文件名:
+
+ + \ No newline at end of file diff --git a/webapp/META-INF/MANIFEST.MF b/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/webapp/User.html b/webapp/User.html new file mode 100644 index 0000000..93cfda6 --- /dev/null +++ b/webapp/User.html @@ -0,0 +1,24 @@ + + + + + 访问 Servlet 示例 + + +

Servlet 链接示例

+ + +

+ 以张三身份访问 Servlet +

+ +

+ 以李四身份访问 Servlet +

+ + +

+ 不带参数访问 Servlet +

+ + diff --git a/webapp/WEB-INF/web.xml b/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..48230db --- /dev/null +++ b/webapp/WEB-INF/web.xml @@ -0,0 +1,22 @@ + + + helloweb + + index.html + index.htm + index.jsp + default.html + default.htm + default.jsp + + + + HelloWorldServlet + HelloWorldServlet + com.demo.HelloServlet + + + HelloWorldServlet + /HelloWorldServlet + + \ No newline at end of file diff --git a/webapp/error.html b/webapp/error.html new file mode 100644 index 0000000..7ac317a --- /dev/null +++ b/webapp/error.html @@ -0,0 +1,10 @@ + + + + + Error Page + + +

登录失败,用户名或密码错误!

+ + \ No newline at end of file diff --git a/webapp/hello.jsp b/webapp/hello.jsp new file mode 100644 index 0000000..b7524f9 --- /dev/null +++ b/webapp/hello.jsp @@ -0,0 +1,16 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +A Simple JSP page + + +

Hello,World!

+ + The time now is:<%=new java.util.Date()%> + + + diff --git a/webapp/input.html b/webapp/input.html new file mode 100644 index 0000000..49179f4 --- /dev/null +++ b/webapp/input.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 学生信息输入 + + +
+ + + + + + + + + + + + + +
学号:
姓名:
+
+ + \ No newline at end of file diff --git a/webapp/input.jsp b/webapp/input.jsp new file mode 100644 index 0000000..53ea961 --- /dev/null +++ b/webapp/input.jsp @@ -0,0 +1,18 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%> + + + + + + 参数传递示例 + + +

从表单向Servlet传递参数

+
+ 姓名:
+ 年龄:
+ + +
+ + \ No newline at end of file diff --git a/webapp/login.html b/webapp/login.html new file mode 100644 index 0000000..773840b --- /dev/null +++ b/webapp/login.html @@ -0,0 +1,28 @@ + + + + + Login Page + + +
+ + + + + + + + + + + + +
用户名:
密  码:
+ +   + +
+
+ + \ No newline at end of file diff --git a/webapp/square.jsp b/webapp/square.jsp new file mode 100644 index 0000000..facb846 --- /dev/null +++ b/webapp/square.jsp @@ -0,0 +1,38 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + Number Squares + + + + + + + <% for(int i = 0; i < 10; i++) { %> + + <% } %> + + + + <% for(int i = 0; i < 10; i++) { %> + + <% } %> + +
数字<%= i %>
平方值<%= i * i %>
+ + diff --git a/webapp/welcome.html b/webapp/welcome.html new file mode 100644 index 0000000..3618a44 --- /dev/null +++ b/webapp/welcome.html @@ -0,0 +1,10 @@ + + + + + Welcome Page + + +

欢迎您,登录成功!

+ + \ No newline at end of file