第三次java作业

This commit is contained in:
lotus 2024-11-25 19:06:50 +08:00
commit 2ab4c681af
22 changed files with 791 additions and 0 deletions

View File

@ -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("<html><body>");
out.println("Servlet名称" + servletName + "<br>");
out.println("Email地址" + email + "<br>");
out.println("电话:" + telephone);
out.println("</body></html>");
}
}

View File

@ -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("<html><body>");
out.println("<font color = '#0000ff'>");
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("</body></html>");
}
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;
}
}

View File

@ -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);
}
}

View File

@ -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("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.println("<title>Hello Servlet</title>");
out.println("<style>");
out.println(".message { color: #0000ff; }");
out.println("</style>");
out.println("</head>");
out.println("<body>");
out.println("<h3 class='message'>Hello, World!</h3>");
out.println("<p>The time now is: " + new java.util.Date() + "</p>");
out.println("</body>");
out.println("</html>");
}
}
}

View File

@ -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("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Hello User</title>");
out.println("</head>");
out.println("<body>");
out.println("<h3>Hello, " + userName + "</h3>");
out.println("</body>");
out.println("</html>");
}
}
}

View File

@ -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("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("</head>");
out.println("<body>");
out.println("<h3>姓名:" + name + "</h3>");
out.println("<h3>年龄:" + age + "</h3>");
out.println("</body>");
out.println("</html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

View File

@ -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");
}
}
}

View File

@ -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("<html><body>");
// out.println("<center>");
//
// if (stud != null) {
// out.println("学号:" + stud.getSno() + "<br>");
// out.println("姓名:" + stud.getName() + "<br>");
// } else {
// out.println("错误:未能获取到学生信息<br>");
// }
//
// out.println("<a href=\"/helloweb/input.html\">返回输入页面</a>");
// out.println("</center>");
// out.println("</body></html>");
// 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("<html><body>");
out.println("<h2>学生信息</h2>");
out.println("<p>学号:" + student.getSno() + "</p>");
out.println("<p>姓名:" + student.getName() + "</p>");
out.println("<a href=\"input.html\">返回输入页面</a>");
out.println("</body></html>");
}
}

View File

@ -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("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"gb2312\">");
out.println("<meta http-equiv=\"refresh\" content=\"2\">");
out.println("<title>显示时间</title>");
out.println("</head>");
out.println("<body>");
out.println("<h3 align=\"center\">每2秒钟刷新一次页面</h3><p>");
out.println("<h3 align=\"center\">现在的时间是:" + s + "</h3><p>");
out.println("</body>");
out.println("</html>");
}
}

View File

@ -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;
}
}

21
java/com/demo/excel.java Normal file
View File

@ -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数学");
}
}

28
webapp/FileUpload.html Normal file
View File

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="fileUpload.do">
<table>
<tr>
<td colspan="2" align="center">文件上传</td>
</tr>
<tr>
<td>会员号:</td>
<td><input type="text" name="mnumber" size="30" /></td>
</tr>
<tr>
<td>文件名:</td>
<td><input type="file" name="fileName" size="30" /></td>
</tr>
<tr>
<td align="right"><input type="submit" value="提交" /></td>
<td align="left"><input type="reset" value="重置"/></td>
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

24
webapp/User.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>访问 Servlet 示例</title>
</head>
<body>
<h2>Servlet 链接示例</h2>
<!-- 使用查询字符串传递参数 -->
<p>
<a href="HelloUserServlet2?userName=张三">以张三身份访问 Servlet</a>
</p>
<p>
<a href="HelloUserServlet2?userName=李四">以李四身份访问 Servlet</a>
</p>
<!-- 测试空值处理 -->
<p>
<a href="HelloUserServlet2">不带参数访问 Servlet</a>
</p>
</body>
</html>

22
webapp/WEB-INF/web.xml Normal file
View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>helloweb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>HelloWorldServlet</display-name>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.demo.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>

10
webapp/error.html Normal file
View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Error Page</title>
</head>
<body>
<h2>登录失败,用户名或密码错误!</h2>
</body>
</html>

16
webapp/hello.jsp Normal file
View File

@ -0,0 +1,16 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>A Simple JSP page</title>
</head>
<body>
<h3>Hello,World!</h3>
<font color="#0000ff">
The time now is:<%=new java.util.Date()%>
</font>
</body>
</html>

57
webapp/input.html Normal file
View File

@ -0,0 +1,57 @@
<!-- <!DOCTYPE html> -->
<!-- <html> -->
<!-- <head> -->
<!-- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -->
<!-- <title>学生信息输入</title> -->
<!-- </head> -->
<!-- <body> -->
<!-- <form action="firstservlet" method="post" accept-charset="UTF-8"> -->
<!-- <table width="298" border="0" align="center" cellpadding="2" cellspacing="1"> -->
<!-- <tr> -->
<!-- <td align="right">学号:</td> -->
<!-- <td align="left"> -->
<!-- <input type="text" name="snumber" size="15"> -->
<!-- </td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td align="right">姓名:</td> -->
<!-- <td> -->
<!-- <input type="text" name="sname" size="15"> -->
<!-- </td> -->
<!-- </tr> -->
<!-- <tr> -->
<!-- <td colspan="2" align="center"> -->
<!-- <input type="submit" value="登录">&nbsp; -->
<!-- <input type="reset" value="取消"> -->
<!-- </td> -->
<!-- </tr> -->
<!-- </table> -->
<!-- </form> -->
<!-- </body> -->
<!-- </html> -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息输入</title>
</head>
<body>
<form action="FirstServlet" method="post">
<table>
<tr>
<td>学号:</td>
<td><input type="text" name="sno" size="30" /></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="name" size="30" /></td>
</tr>
<tr>
<td align="right"><input type="submit" value="提交" /></td>
<td align="left"><input type="reset" value="重置" /></td>
</tr>
</table>
</form>
</body>
</html>

18
webapp/input.jsp Normal file
View File

@ -0,0 +1,18 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>参数传递示例</title>
</head>
<body>
<h3>从表单向Servlet传递参数</h3>
<form method="GET" action="ParamServlet">
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
<input type="submit" value="确定">
<input type="reset" value="重置">
</form>
</body>
</html>

28
webapp/login.html Normal file
View File

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<form action="RedirectServlet" method="post">
<table width="298" border="0" align="center" cellpadding="2" cellspacing="1">
<tr>
<td align="right">用户名:</td>
<td align="left"><input type="text" name="username" size="15"></td>
</tr>
<tr>
<td align="right">&nbsp;&nbsp;码:</td>
<td><input type="password" name="password" size="15"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录">
&nbsp;
<input type="reset" value="取消">
</td>
</tr>
</table>
</form>
</body>
</html>

38
webapp/square.jsp Normal file
View File

@ -0,0 +1,38 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Number Squares</title>
<style>
table {
border-collapse: collapse;
margin: 20px;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<table>
<tr>
<th>数字</th>
<% for(int i = 0; i < 10; i++) { %>
<td><%= i %></td>
<% } %>
</tr>
<tr>
<th>平方值</th>
<% for(int i = 0; i < 10; i++) { %>
<td><%= i * i %></td>
<% } %>
</tr>
</table>
</body>
</html>

10
webapp/welcome.html Normal file
View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome Page</title>
</head>
<body>
<h2>欢迎您,登录成功!</h2>
</body>
</html>