---------------------------------IDEA之第二个程序course(解决田刚老师的问题)
本项目程序代码: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/>     <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(解决田刚老师的问题)相关推荐
- 《Go语言圣经》学习笔记 第二章 程序结构
Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...
- pycharm运行完第一个程序,怎么运行第二个程序
献给和我一样的pycharm小白 刚用pycharm,我感觉,pycharm比spyder好用一点,有树结构,有变量目录 问题描述如下: 我运行完第一个程序后,再选中第二个程序点击运行,运行的还是第一 ...
- 解决“无法启动此程序,因为计算机中丢失VCRUNTIME140.dll,尝试重新安装此程序以解决此问题”方案合集
解决"无法启动此程序,因为计算机中丢失VCRUNTIME140.dll,尝试重新安装此程序以解决此问题"方案合集 前言 1.解决方法一 2.解决方法二 总结及广大读者遇到的问题 前 ...
- devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
今天不知道安装了什么软件(我怀疑是安装了工商银行网上银行的那个安全插件导致的,因为这已经是第二次了,第一次我没解决了,重做的系统),破坏了系统文件,打开VS2010的时候,弹出如下错误: C:\Win ...
- r认识计算机教案,八年级信息技术教案第二章 程序新天地----初识QBASIC
第二章 程序新天地----初识QBASIC 一.学习目标 1.了解机器语言和高级语言各自的特点. 2.了解什么是计算机程序. 3.了解程序设计的基本步骤. 二.教学重点 程序设计的基本步骤. 三.教学 ...
- 安装软件时出现系统错误“由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题。”
我是在安装火狐浏览器时出现的这个问题,之前用的都好好的,不知最近是不是把某个文件删除了,所以就出现:"由于找不到VCRUNTIME140_1.dll,无法继续执行代码.重新安装程序可能会解决 ...
- python使用ctype中”OSError: [WinError 193] %1 不是有效的 Win32 应用程序“的解决办法
python使用ctype中"OSError: [WinError 193] %1 不是有效的 Win32 应用程序"的解决办法 解决办法: 下载32位的python,重新安装即可 ...
- 使用supervisor支持Python3程序 (解决找不到Module的问题)
使用supervisor支持Python3程序 (解决找不到Module的问题) 参考文章: (1)使用supervisor支持Python3程序 (解决找不到Module的问题) (2)https: ...
- 无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题
无法启动此程序,因为计算机中丢失 MSVCP120.dll.尝试安装该程序以解决此问题 参考文章: (1)无法启动此程序,因为计算机中丢失 MSVCP120.dll.尝试安装该程序以解决此问题 (2) ...
- PB程序“无法启动此程序,因为计算机中丢失PBvm90.dll。尝试重新安装该程序以解决此问题”的解决方法
PB程序"无法启动此程序,因为计算机中丢失PBvm90.dll.尝试重新安装该程序以解决此问题"的解决方法 参考文章: (1)PB程序"无法启动此程序,因为计算机中丢失P ...
最新文章
- windows java 小程序_JAVA第一个窗体小程序
- 工具推荐|程序员必须知道的11款新型编程工具
- jquery html data属性,jQuery Mobile Data 属性
- Android之PhotoView使用(原创)
- JS重写toString(),打印想要的值
- 40个新鲜出炉的 jQuery 插件和免费教程【上篇】 转载自:梦想天空
- ubuntu安装操作HttpSQS高速队列
- JAVA和Android的回调机制
- mysql按年创建分区表,增加分区表,删除分区表,实战练习
- Spring Boot 初体验(8)配置server信息
- Julia:1.0与0.6 的几点不同
- Spring Boot工程结构推荐
- 计算机电子表格制作教案,电子表格Excel教案设计
- 管理员已阻止你运行此应用。有关详细信息,请与管理员联系。windows10
- ChatGPT介绍世界杯历史与编写足球游戏python程序
- 校园地图设计——任意两点间的算法优化流程与while搭配switch语句的bug解读
- maya python插件_Maya Python - ALembic导入导出助手
- python中语法错误-Python语法错误与异常及异常处理方法
- 【案例实践】植被参数遥感反演与数据同化系列
- 《Istio官方文档》设计理念
热门文章
- Hibernate写代码流程小结
- android 来电默认铃声,android – 来电动态覆盖默认铃声
- Android经典铃声等等等等,低调而优雅:40 款经典黑莓手机铃声精选(安卓手机适用)...
- java审计之XXE
- ME:环境DNA(eDNA)宏条形码技术正在转变我们考察动植物群落的方法
- 西电数据挖掘实验3——复杂网络社团检测
- DMZ区的介绍及连接图
- 中国大学mooc c语言作业,中国大学mooc程序设计入门——C语言:第三周测验(示例代码)...
- ES6.x版本单机三节点配置discovery.zen.ping.unicast.hosts 错误
- Re5:读论文 TWAG: A Topic-guided Wikipedia Abstract Generator