当前位置 : 主页 > 编程语言 > java >

Request之登录系统跳转应用以及原理详解【JavaWeb】

来源:互联网 收集:自由互联 发布时间:2022-09-02
@[toc] 一.HttpServletRequest准备 HttpServletRequest:客户端的请求,可以获得客户端的所有信息。 通过HTTP访问到我们的服务器,请求中的所有信息都会封装到HttpServletRequest中。 我们的req.getPa

@[toc]

一.HttpServletRequest准备

HttpServletRequest:客户端的请求,可以获得客户端的所有信息。

通过HTTP访问到我们的服务器,请求中的所有信息都会封装到HttpServletRequest中。

image-20220820152102914

我们的req.getParameter();可以返回一个。而req.getParameterValues()可以返回多个。

image-20220820152847986

二.Request实战

  • 新建maven工程,工程名为requestservlet,模板我们选择webapp模板,点击创建。

    image-20220820153131312

  • 2.得到如下目录结构,没有java和resoures的可以新建。记得标记root类型。

    image-20220820153343795

    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的启动目标项目路径。

    image-20220820162626868

    16.启动项目,首页可以得到下图:

    image-20220820162724286

    2.1 编码乱码处理

    image-20220820163722307

    我们在开发过程中时常遇到如上的乱码。

    方法一:使用编码插件,将前端内容强制转换为utf-8:

    image-20220820163823666

    方法二:后端设置编码:

    在java后端添加字符编码。

    resp.setCharacterEncoding("utf-8");

    或者在前端jsp页面,添加:

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

    2.2 启动项目检验结果

    启动项目之后,访问首页:

    image-20220820170406428

    如上选项,提交,跳转到login页面:

    image-20220820170428058

    后台输出:

    image-20220820170442066

    后台输出没有问题。我们选择了上进小菜猪,菜猪,小猪,所以最后的数组输出124。

    image-20220820170506791

    上一篇:Java数组基础之高效存储数据
    下一篇:没有了
    网友评论