JavaWeb配置Servlet

在Java Web开发中,数据流主要遵循以下流程:

  1. 用户在浏览器中输入URL或点击链接,发送HTTP请求到服务器。
  2. 服务器接收到请求后,根据请求的URL找到对应的Servlet。
  3. Servlet处理请求,可能需要查询数据库或执行其他业务逻辑。
  4. Servlet生成HTTP响应,通常是HTML,JSON或XML等格式的数据。
  5. 服务器将HTTP响应发送回浏览器。
  6. 浏览器接收到响应后,解析并显示给用户。

打开当前项目.xml

请添加图片描述

<!--    告知服务器tomcat ,应用那个servlet-->
    <servlet>
        <servlet-name>FirstServlet</servlet-name>
<!--        权限   给的某个servlet     -->
        <servlet-class>cn.edu.MyITHeiMa.servelt.FirstServlet</servlet-class>
    </servlet>

<!--    servlet告知服务器 -->
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
<!--        是自定义的 -->
        <url-pattern>/FirstServlet</url-pattern>
    </servlet-mapping>

run个代码爽一下----地址栏拼接是以get方法

请添加图片描述

超链接也是—get方法

在index.jsp中写

<%--
  Created by IntelliJ IDEA.
  User: 86156
  Date: 2023/9/18
  Time: 9:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
  <a href="FirstServlet">访问FirstServlet</a>
<br>
<form action="FirstServlet" method="post">
    <input type="submit" value="提交FirstServlet">
</form>
</body>
</html>

在这里插入图片描述

点访问–get

在这里插入图片描述

点提交–post

在这里插入图片描述

配servlet模板请添加图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

用模板创建的就不用管.xml

在这里插入图片描述

package cn.edu.MyITHeiMa.servelt;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "QuickServlet", value = "/QuickServlet")
public class QuickServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //需求:相应客户端需求,以post方法访问QuickServlet
        // 1.   设置响应类型
        response.setContentType("text/html");

        //    2.设置编码格式
        response.setCharacterEncoding("utf-8");

        //    3,获取printwrite
        PrintWriter out =response.getWriter();
        out.println("以post方法访问FirstServlet");
        //
    }
}

@WebServlet(name = “QuickServlet”, value = “/QuickServlet”)

注解已做

在这里插入图片描述

index.jsp中链接到 QuickServlet

在这里插入图片描述

new一个登录模板

在这里插入图片描述

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: 86156
  Date: 2023/10/9
  Time: 10:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录页面</title>
</head>
<body>
<form action=""  method="post">
    用户名 : <input type="text" name="user"  placeholder="请输入用户名">
    <br>
    密码框: <input type="password" name="password"  placeholder="请输入您账户的密码">
    <br>
    <input type="submit" value="登录">
</form>
</body>
</html>

单值V多值

在这里插入图片描述

要一样的名在这里插入图片描述

没有跳转的,控制台无响应.action’无链接

在这里插入图片描述

有了之后,

在这里插入图片描述

中文乱码–用户

0-58-42.png&pos_id=img-lCVejnlP-1697895279650)

解决方案— 请求对象设置charset为utf8格式

在这里插入图片描述

完成跳转

或者"".equals(userName)

在这里插入图片描述

//方式一:响应重定向

// 3. 完成跳转
// 需求:用户名不为空且密码是123456,登录成功。否则登录失败

if (!userName.matches("\\.{0}") && userPassword.equals("123456")) {
    // 登录成功
    System.out.println("登录成功");
    //serlet -- 跳转LoginSuccessServlet
      //方式一:servlet模拟响应重定向
    response.sendRedirect("LoginSuccessServlet");
地址栏发生变换,发生请求 ,新的servlet对象

//方式二:请求转发:

//request.getRequestDispatcher("LoginSuccessServlet").forward(request, response);
地址栏未发生变换,发生请求 ,新的servlet对象在这里插入图片描述
/**
 * @Author: LzyX
 * @Description:
 * @Date: 2023/10/9 10:37
 * @Parms:
 * @ReturnType:
 */

package cn.edu.MyITHeiMa.servelt;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.regex.Pattern;

@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 接收请求
        request.setCharacterEncoding("utf-8");
        String userName = request.getParameter("userName");
        String userPassword = request.getParameter("userPassword");
        System.out.println(userName + '\t' + userPassword);

        // 2. 处理请求
        // JDBC = ...

        // 3. 完成跳转
        // 需求:用户名不为空且密码是123456,登录成功。否则登录失败

        if (!userName.matches("\\.{0}") && userPassword.equals("123456")) {
            // 登录成功
            System.out.println("登录成功");
            //serlet -- 跳转LoginSuccessServlet
            方式一:servlet模拟响应重定向
            //
            //response.sendRedirect("LoginSuccessServlet");

            //跳转到LoginSuccessServlet.jsp



            //方式二:请求转发:
            //request.getRequestDispatcher("LoginSuccessServlet").forward(request, response);
            request.getRequestDispatcher("loginSucess.jsp").forward(request, response);
        } else {
            // 登录失败
            System.out.println("登录失败");
            serlet -- 跳转LoginFailServlet
            //响应重定向,体验不好
            //    需要信息提示,该从Loginservlet带入信息login.jsp页面,  servlet-- 数据 --jsp页面

            //response.sendRedirect("LoginFailServlet");


            //无法跳转到LoginSuccessServlet.jsp,返回到login.jsp
            request.setAttribute("msg", "用户名或者密码错误");
            request.getRequestDispatcher("login.jsp").forward(request, response);


        }


    }
}

提示信息

在这里插入图片描述

<%--
  Created by IntelliJ IDEA.
  User: 86156
  Date: 2023/10/9
  Time: 10:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录页面</title>
</head>
<body>

<%
    String msg = (String) request.getAttribute("msg");


%>
<form action="LoginServlet" method="post">
    用户名 : <input type="text" name="userName" placeholder="请输入用户名">
    <br>
    密码框: <input type="password" name="userPassword" placeholder="请输入您账户的密码">
    <br>
    <input type="submit" value="登录">


    <%if (msg != null || "".equals(msg)) {%>

    <span style="color: lightpink">
        <%=msg%>

    </span>
    <%
        }
    %>
</form>
</body>
</html>

=“text” name=“userName” placeholder=“请输入用户名”>


密码框:


<%if (msg != null || "".equals(msg)) {%>

<span style="color: lightpink">
    <%=msg%>

</span>
<%
    }
%>
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你会魔法吗✧(≖ ◡ ≖✿)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值