本项目程序代码:https://wwr.lanzoui.com/i6kxXv6pz6d

问题:

有一个JSP注册页面(index.jsp),姓名,年龄,学校,post方法,用户填写注册信息后提交给一个Servlet(/handleData)文件进行处理,把姓名,年龄,学校分别存放到session,cookie和application,Servlet文件按收数据后重定向到另一个JSP文件(reguser2.jsp),最后由reguser2.jsp将用户的注册信息打中出来。

分解该问题:

1.有一个JSP注册页面(index.jsp),姓名,年龄,学校,post方法

2.用户填写注册信息后提交给一个Servlet(/handleData)文件进行处理

3.把姓名,年龄,学校分别存放到session,cookie和application

4.Servlet文件按收数据后重定向到另一个JSP文件(reguser2.jsp)

5.最后由reguser2.jsp将用户的注册信息打中出来。

解决思路

  • 0.确保环境安装正确
    • 0.0使用第二种方式需补充
  • 1. 有一个JSP注册页面(index.jsp),姓名,年龄,学校,post方法
  • 2.用户填写注册信息后提交给一个Servlet(/handleData)文件进行处理
    • 2.1 在java目录下创建com.CourseServlet.java
    • 2.2 (重点,易忘)配置映射路径
    • 2.3 在CourseServlet.java中测试,看能不能进入dopost方法
  • 3.把姓名,年龄,学校分别存放到session,cookie和application + 4.Servlet文件按收数据后重定向到另一个JSP文件(reguser2.jsp)
  • 5.最后由reguser2.jsp将用户的注册信息打中出来。
  • 6.run
  • -------------------------------------------解释-------------------------------------------------

0.确保环境安装正确

使用maven模板
参考我的博客:IDEA第一个程序之HelloServlet(配置环境从零到成功)

不使用maven模板
参考我的博客:IDEA2019 如何不通过模板创建支持Maven的JavaWeb项目

注:两种方法都可以,本博客使用的是第二种:不使用maven模板

0.0使用第二种方式需补充

在maven的核心配置pom.xml中补充依赖

<dependencies><!--    应该是路径映射--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version></dependency><!--     servlet依赖--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency><!--        JSP依赖--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version></dependency><!--    JSTL表达式的依赖--><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl-api</artifactId><version>1.2</version></dependency><!--        standard标签库--><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><!--   连接数据库--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency></dependencies>

在最右侧点击maven,检查是否导入成功

1. 有一个JSP注册页面(index.jsp),姓名,年龄,学校,post方法

index.jsp与WBE-INF目录同级


get与post一个小区别

%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body><form action="/handleData" method="post">姓名:<input type="text" name="username"><br/>年龄:<input type="text" name="age"><br/>学校:<input type="text" name="school"><br/><br/>&ensp;&ensp;&ensp;&ensp; <input type="submit" name="submit" value="提交"></form></body>
</html>

2.用户填写注册信息后提交给一个Servlet(/handleData)文件进行处理


2.1 在java目录下创建com.CourseServlet.java


2.2 (重点,易忘)配置映射路径

    <!--注册servlet--><servlet><servlet-name>CourseServlet</servlet-name><servlet-class>com.CourseServlet</servlet-class></servlet><!--  servlet的请求路径--><servlet-mapping><servlet-name>CourseServlet</servlet-name><url-pattern>/handleData</url-pattern></servlet-mapping>

2.3 在CourseServlet.java中测试,看能不能进入dopost方法

经过2.1步骤创建好的样子:

顺便测试

        request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//第一步,先测试,看能不能进入dopost方法System.out.println("测试:进入dopost方法");

3.把姓名,年龄,学校分别存放到session,cookie和application + 4.Servlet文件按收数据后重定向到另一个JSP文件(reguser2.jsp)

package com;import javax.servlet.ServletContext;
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;public class CourseServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//第一步,先测试,看能不能进入dopost方法System.out.println("测试:进入dopost方法");String name = request.getParameter("username");String age = request.getParameter("age");String school = request.getParameter("school");Cookie cookie=new Cookie("username", name);response.addCookie(cookie);request.getSession().setAttribute("age",age);ServletContext application = this.getServletContext();application.setAttribute("school", school);response.sendRedirect("/reguser2.jsp");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}

5.最后由reguser2.jsp将用户的注册信息打中出来。

在webapp目录下创建reguser2.jsp

在reguser2.jsp编写代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title>
</head>
<body>姓名是
<%Cookie[] cookies = request.getCookies();if(cookies==null){out.println("姓名未存");}else{for (int i = 0; i < cookies.length; i++)    {if(cookies[i].getName().equals("username"))        {out.println(cookies[i].getValue());break;}}}
%>
<br>年龄是<%=session.getAttribute("age")%><br>学校是<%=application.getAttribute("school")%></body>
</html>

6.run

点击运行

运行成功

-------------------------------------------解释-------------------------------------------------

该文件下载: https://wwr.lanzoui.com/b02oelzda
密码:    dthq

---------------------------------IDEA之第二个程序course(解决田刚老师的问题)相关推荐

  1. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  2. pycharm运行完第一个程序,怎么运行第二个程序

    献给和我一样的pycharm小白 刚用pycharm,我感觉,pycharm比spyder好用一点,有树结构,有变量目录 问题描述如下: 我运行完第一个程序后,再选中第二个程序点击运行,运行的还是第一 ...

  3. 解决“无法启动此程序,因为计算机中丢失VCRUNTIME140.dll,尝试重新安装此程序以解决此问题”方案合集

    解决"无法启动此程序,因为计算机中丢失VCRUNTIME140.dll,尝试重新安装此程序以解决此问题"方案合集 前言 1.解决方法一 2.解决方法二 总结及广大读者遇到的问题 前 ...

  4. devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...

    今天不知道安装了什么软件(我怀疑是安装了工商银行网上银行的那个安全插件导致的,因为这已经是第二次了,第一次我没解决了,重做的系统),破坏了系统文件,打开VS2010的时候,弹出如下错误: C:\Win ...

  5. r认识计算机教案,八年级信息技术教案第二章 程序新天地----初识QBASIC

    第二章 程序新天地----初识QBASIC 一.学习目标 1.了解机器语言和高级语言各自的特点. 2.了解什么是计算机程序. 3.了解程序设计的基本步骤. 二.教学重点 程序设计的基本步骤. 三.教学 ...

  6. 安装软件时出现系统错误“由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题。”

    我是在安装火狐浏览器时出现的这个问题,之前用的都好好的,不知最近是不是把某个文件删除了,所以就出现:"由于找不到VCRUNTIME140_1.dll,无法继续执行代码.重新安装程序可能会解决 ...

  7. python使用ctype中”OSError: [WinError 193] %1 不是有效的 Win32 应用程序“的解决办法

    python使用ctype中"OSError: [WinError 193] %1 不是有效的 Win32 应用程序"的解决办法 解决办法: 下载32位的python,重新安装即可 ...

  8. 使用supervisor支持Python3程序 (解决找不到Module的问题)

    使用supervisor支持Python3程序 (解决找不到Module的问题) 参考文章: (1)使用supervisor支持Python3程序 (解决找不到Module的问题) (2)https: ...

  9. 无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题

    无法启动此程序,因为计算机中丢失 MSVCP120.dll.尝试安装该程序以解决此问题 参考文章: (1)无法启动此程序,因为计算机中丢失 MSVCP120.dll.尝试安装该程序以解决此问题 (2) ...

  10. PB程序“无法启动此程序,因为计算机中丢失PBvm90.dll。尝试重新安装该程序以解决此问题”的解决方法

    PB程序"无法启动此程序,因为计算机中丢失PBvm90.dll.尝试重新安装该程序以解决此问题"的解决方法 参考文章: (1)PB程序"无法启动此程序,因为计算机中丢失P ...

最新文章

  1. windows java 小程序_JAVA第一个窗体小程序
  2. 工具推荐|程序员必须知道的11款新型编程工具
  3. jquery html data属性,jQuery Mobile Data 属性
  4. Android之PhotoView使用(原创)
  5. JS重写toString(),打印想要的值
  6. 40个新鲜出炉的 jQuery 插件和免费教程【上篇】 转载自:梦想天空
  7. ubuntu安装操作HttpSQS高速队列
  8. JAVA和Android的回调机制
  9. mysql按年创建分区表,增加分区表,删除分区表,实战练习
  10. Spring Boot 初体验(8)配置server信息
  11. Julia:1.0与0.6 的几点不同
  12. Spring Boot工程结构推荐
  13. 计算机电子表格制作教案,电子表格Excel教案设计
  14. 管理员已阻止你运行此应用。有关详细信息,请与管理员联系。windows10
  15. ChatGPT介绍世界杯历史与编写足球游戏python程序
  16. 校园地图设计——任意两点间的算法优化流程与while搭配switch语句的bug解读
  17. maya python插件_Maya Python - ALembic导入导出助手
  18. python中语法错误-Python语法错误与异常及异常处理方法
  19. 【案例实践】植被参数遥感反演与数据同化系列
  20. 《Istio官方文档》设计理念

热门文章

  1. Hibernate写代码流程小结
  2. android 来电默认铃声,android – 来电动态覆盖默认铃声
  3. Android经典铃声等等等等,低调而优雅:40 款经典黑莓手机铃声精选(安卓手机适用)...
  4. java审计之XXE
  5. ME:环境DNA(eDNA)宏条形码技术正在转变我们考察动植物群落的方法
  6. 西电数据挖掘实验3——复杂网络社团检测
  7. DMZ区的介绍及连接图
  8. 中国大学mooc c语言作业,中国大学mooc程序设计入门——C语言:第三周测验(示例代码)...
  9. ES6.x版本单机三节点配置discovery.zen.ping.unicast.hosts 错误
  10. Re5:读论文 TWAG: A Topic-guided Wikipedia Abstract Generator