网站首页 > 技术文章 正文
一.HttpServletRequest准备
HttpServletRequest:客户端的请求,可以获得客户端的所有信息。
通过HTTP访问到我们的服务器,请求中的所有信息都会封装到HttpServletRequest中。
我们的req.getParameter();可以返回一个。而req.getParameterValues()可以返回多个。
二.Request实战
- 新建maven工程,工程名为requestservlet,模板我们选择webapp模板,点击创建。
2.得到如下目录结构,没有java和resoures的可以新建。记得标记root类型。
3.替换web.xml引用信息:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<display-name>Archetype Created Web Application</display-name>
</web-app>
4.在java文件目录下新建接口:com.gowork.servlet。
5.在com.gowork.servlet接口下新建方法,方法名为:loginservlet。
6.在loginservlet类方法下,继承HttpServlet。
7.重写doGet和doPost方法。我们这次尝试使用doPost方法。
8.到web.xml里注册url和映射url。
<servlet>
<servlet-name>loginservlet</servlet-name>
<servlet-class>com.gowork.servlet.loginservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginservlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
9.写前端页面:打开index.jsp。
我们添加页头,设置页面编码为utf-8.
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
10.我们写一个提交表单,这次我们采用post方式来提交表单。
提交到我们的/login请求。
<form action="${pageContext.request.contextPath}/login" method="post">
设置用户名,密码,和我是,我是采用复选框:
用户名:<input type="text" name="username"> <br>
密码:<input type="password" name="password"> <br>
我是:
<input type="checkbox" name="yu"> 上进小菜猪
<input type="checkbox" name="yu"> 菜猪
<input type="checkbox" name="yu"> 小菜
<input type="checkbox" name="yu"> 小猪
写一下提交按钮:
<input type="submit">
${pageContext.request.contextPath}代表我们当前项目的路径。
11.到webapp目录下,增加一个跳转成功的页面:success.jsp。
<html>
<body>
<h2>登录成功</h2>
</body>
</html>
12.我们上文有说过,getParameter是获取单个的值,因为上面有用户名和密码是俩好单个的,所以我现在这里写俩个getParameter,分别获取用户名和密码。
req.getParameter("username");
req.getParameter("password");
13.因为我们有多选框,我们采用getParameterValues来获取:
String[] yus = req.getParameterValues("yu");
14.输出用户名,密码和我是三个选项的值。
System.out.println(user);
System.out.println(pass);
System.out.println(Arrays.toString(yus));
15.记得更换tomcat的启动目标项目路径。
16.启动项目,首页可以得到下图:
2.1 编码乱码处理
我们在开发过程中时常遇到如上的乱码。
方法一:使用编码插件,将前端内容强制转换为utf-8:
方法二:后端设置编码:
在java后端添加字符编码。
resp.setCharacterEncoding("utf-8");
或者在前端jsp页面,添加:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
2.2 启动项目检验结果
启动项目之后,访问首页:
如上选项,提交,跳转到login页面:
后台输出:
后台输出没有问题。我们选择了上进小菜猪,菜猪,小猪,所以最后的数组输出124。
来源:https://blog.51cto.com/u_15568258/5628376
- 上一篇: [web前端] Vue 用户登录流程
- 下一篇: 自定义 WordPress 登录以回复链接及文字
猜你喜欢
- 2024-11-24 测试开发基础,教你做一个完整功能的Web平台之登录认证
- 2024-11-24 iframe嵌入页面实现免登录
- 2024-11-24 用Java三层架构写一个登录案例
- 2024-11-24 带你掌握springboot集成SpringSecurity认证授权
- 2024-11-24 .NET云原生应用实践(五):使用Blazor WebAssembly实现前端页面
- 2024-11-24 我觉得再没有登录页卷的啦,简单需求非要惊艳效果
- 2024-11-24 一步步使用SpringBoot实现登录和用户管理功能源码分享
- 2024-11-24 登录页漂亮不漂亮,来走两步。
- 2024-11-24 再来一波登录页,就这个样被征服了。
- 2024-11-24 自定义 WordPress 登录以回复链接及文字
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 601℃几个Oracle空值处理函数 oracle处理null值的函数
- 593℃Oracle分析函数之Lag和Lead()使用
- 581℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 578℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 573℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 566℃【数据统计分析】详解Oracle分组函数之CUBE
- 552℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 547℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)