在浏览器输入如下地址:
http://localhost/examPageServlet
效果如下:

- response.setContentType("text/html;charset=UTF-8");
- PrintWriter writer = response.getWriter();
- writer.write("\n" +
- "\n" +
- "\n" +
- " \n" +
- "
Title \n" + - "\n" +
- "\n" +
- "\n" +
- " \n" +
- " \n" +
- " 超级全能生\n" +
- " \n" +
- " 浙江省新高考信息技术科目基础\n" +
- " 夯实卷(一)\n" +
- " \n" +
- " 1\n" +
- " \n" +
- " \n" +
- " 信息技术\n" +
- " 本试卷满分50分,考试时间45分钟。\n" +
- " \n" +
- " \n" +
- " 一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,\n" +
- " 只有一个是符合题目要求的)\n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " 1.下列有关数据、信息、知识、智慧等说法中,正确的是\n" +
- " ()\n" +
- " \n" +
- " \n" +
- " \n" +
- " A.计算机可以处理文本、图像、声音、视频等数据,数据量大时,只能使用计算机来处理\n" +
- " B.计算机可以处理文本、图像、声音、视频等数据,数据量大时,只能使用计算机来处理\n" +
- " C.计算机可以处理文本、图像、声音、视频等数据,数据量大时,只能使用计算机来处理\n" +
- " D.计算机可以处理文本、图像、声音、视频等数据,数据量大时,只能使用计算机来处理\n" +
- "\n" +
- " \n" +
- " \n" +
- " \n" +
- "\n" +
- " 。。。。。。。\n" +
- " \n" +
- "\n" +
- " \n" +
- "\n" +
- "");
- }
@WebServlet(value = {"/examPageServlet","/exam-page.html"},loadOnStartup = 1)
@WebServlet(value = {"/examPageServlet","/exam-page.html"},loadOnStartup = 1)
- @WebServlet("/")
- public class DefaultServlet extends HttpServlet {
【tomcat路径匹配源码分析】搞懂tomcat中web.xml配置servlet的url-pattern为“/“和“/*“的区别_tomcat url-pattern-CSDN博客
在web.xml中添加如下代码:让tomcat的默认servlet处理静态资源
- <servlet-mapping>
- <servlet-name>defaultservlet-name>
- <url-pattern>*.htmlurl-pattern>
- servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>defaultservlet-name>
- <url-pattern>/static/*url-pattern>
- servlet-mapping>
- ServletConfig servletConfig = this.getServletConfig();
- String encoding = servletConfig.getInitParameter("encoding");
- private void setDatabaseURL() {
- ServletContext servletContext = this.getServletContext();
- String databasePath = servletContext.getRealPath("/WEB-INF/classes/database.properties");
- FileInputStream in;
- try {
- in = new FileInputStream(databasePath);
- Properties pros = new Properties();
- pros.load(in);
- String databaseURL = pros.getProperty("url");
- servletContext.setAttribute("databaseURL", databaseURL);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }

<img src='/headPicServlet' />
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- ServletOutputStream out = response.getOutputStream();
- ServletContext context = this.getServletContext();
- // 获取文件绝对路径
- String path = context.getRealPath("/head.bmp");
- FileInputStream in = new FileInputStream(path);
- response.setContentType("image/bmp");//告诉浏览器显示图片
- //response.setContentType("multipart/form-data");//告诉浏览器下载图片
- out = response.getOutputStream();
- //读取文件流
- int len = 0;
- byte[] buffer = new byte[1024 * 10];
- while ((len = in.read(buffer)) != -1){
- out.write(buffer,0,len);
- }
- out.flush();
- }
1、创建单项选择题类
- public class SelectOneQuestion {
- private Integer id;
- private String question;
- private String a;
- private String b;
- private String c;
- private String d;
- private String ask;
2、在DefaultServlet中初始化题库
- private void initDatabase() {
- HashMap
database = new HashMap(); - for (int i = 1; i <= 10; i++) {
- database.put(i, new SelectOneQuestion(i, "question"+i, "a"+i, "b"+i,"c"+i, "d"+i,"b"));
- }
- ServletContext servletContext = this.getServletContext();
- servletContext.setAttribute("database", database);
- }
3、使用题库优化ExamPageServlet
- //遍历选择题
- StringBuilder sb=new StringBuilder();
- database.forEach((i,question)->{
- sb.append("\n");
- sb.append("\n");
- sb.append("");
- sb.append(i).append(".").append(question.getQuestion()).append("\n");
- sb.append("()\n");
- sb.append("\n\n");
- sb.append("\n");
- sb.append("A.").append(question.getA()).append("\n");
- sb.append("B.").append(question.getB()).append("\n");
- sb.append("C.").append(question.getC()).append("\n");
- sb.append("D.").append(question.getD()).append("\n");
- sb.append("\n\n
\n"); - });
1、创建填写选择题的表单页
- html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Insert title heretitle>
- head>
- <body>
-
- <form action="/question-bank/AddSelectOneQuestionServlet" method="post">
- 问题: <input type="text" name="question" /><br>
- 选项A: <input type="text" name="a" /><br>
- 选项B: <input type="text" name="b" /><br>
- 选项C: <input type="text" name="c" /><br>
- 选项D: <input type="text" name="d" /><br>
- 答案: <input type="text" name="ask" /><br>
- <input type="submit" value="保存" />
- form>
- body>
- html>
2、创建servlet处理上面表单提交的数据,实现添加选择题并重定向到ExamPageServlet
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- // 获取数据库
- ServletContext servletContext = this.getServletContext();
- HashMap
database = (HashMap) servletContext - .getAttribute("database");
- //获取题目最大的id
- Set
keySet = database.keySet(); - Integer max=0;
- for (Integer i : keySet) {
- if (max
- max = i;
- }
- }
- String question = request.getParameter("question");
- String a = request.getParameter("a");
- String b = request.getParameter("b");
- String c = request.getParameter("c");
- String d = request.getParameter("d");
- String ask = request.getParameter("ask");
-
- SelectOneQuestion ques = new SelectOneQuestion(max+1, question, a, b, c, d, ask);
- database.put(max+1, ques);
- response.sendRedirect("examPageServlet");
- }