JavaWeb配置Servle

在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: 86156Date: 2023/9/18Time: 9:44To 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 {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//需求:相应客户端需求,以post方法访问QuickServlet// 1.   设置响应类型response.setContentType("text/html");//    2.设置编码格式response.setCharacterEncoding("utf-8");//    3,获取printwritePrintWriter out =response.getWriter();out.println("以post方法访问FirstServlet");//}
}

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

注解已做

在这里插入图片描述

index.jsp中链接到 QuickServlet

在这里插入图片描述

new一个登录模板

在这里插入图片描述

login.jsp

<%--Created by IntelliJ IDEA.User: 86156Date: 2023/10/9Time: 10:19To 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 {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}@Overrideprotected 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.jsprequest.setAttribute("msg", "用户名或者密码错误");request.getRequestDispatcher("login.jsp").forward(request, response);}}
}

提示信息

在这里插入图片描述

<%--Created by IntelliJ IDEA.User: 86156Date: 2023/10/9Time: 10:19To 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>
<%}
%>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145142.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的电子设备销售网站的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

强化学习 | Python强化学习

强化学习在近年来取得了巨大的突破,使机器能够在不断的试错中自动学习并做出决策。 本文将介绍强化学习的基本概念、原理和应用,同时提供详细的公式解释和Python代码示例。 强化学习是什么? 强化学习是一种机器学习方法,用于让智能体(例如机器人、自动驾驶汽车或游戏玩家…

5、Kafka集成 SpringBoot

SpringBoot 是一个在 JavaEE 开发中非常常用的组件。可以用于 Kafka 的生产者&#xff0c;也可以 用于 SpringBoot 的消费者。 1&#xff09;在 IDEA 中安装 lombok 插件 在 Plugins 下搜索 lombok 然后在线安装即可&#xff0c;安装后注意重启 2&#xff09;SpringBoot 环境准…

GRASP 、SOLID 与 GoF 设计模式

一、GRASP GRASP&#xff1a;通用职责分配软件设计模式(General Responsibility Assignment Software Patterns)&#xff0c;其主要思想是基于单一职责设计软件对象。 思考软件对象设计以及大型构件的流行方式是&#xff0c;考虑其职责、角色和协作。这是被称为职责驱动设计&a…

C++:为什么析构函数一般写为虚函数

如果没有继承关系&#xff0c;析构函数写不写为虚函数都可以。 如果有继承关系、有多态性的使用需求时&#xff0c;就需要把析构函数写为虚函数&#xff0c;这样可以避免潜在的内存泄漏问题。 比如&#xff1a;当一个类被设计为作为基类&#xff0c;并且通过基类指针或引用dele…

UG\NX二次开发 取消抑制特征 UF_MODL_unsuppress_feature

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 bullzhanghao 订阅本专栏,非常感谢。 简介 UG\NX二次开发 取消抑制特征 UF_MODL_unsuppress_feature 效果 代码 #include "me.hpp" #include <vector> #

FL Studio21最新中文破解进阶高级完整版安装下载教程

目前水果软件最版本是FL Studio21&#xff0c;它让你的计算机就像是全功能的录音室&#xff0c;大混音盘&#xff0c;非常先进的制作工具&#xff0c;让你的音乐突破想象力的限制。喜欢音乐制作的小伙伴千万不要错过这个功能强大&#xff0c;安装便捷的音乐软件哦&#xff01;如…

【计算机网络】IP协议的相关特性

IP协议&#xff1a;互联网的核心组件 在当今高度数字化的世界中&#xff0c;互联网已成为人们生活、工作不可或缺的一部分。而在这个庞大的网络中&#xff0c;IP协议&#xff08;Internet Protocol&#xff09;作为核心的通信协议&#xff0c;发挥着至关重要的作用。本文将详细…

Day3 Qt

作业 1. 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到新的界面中 如果账号和密码不…

在Lichee RV Dock上的不成功的烧录尝试

最近在学基于risc-v的简单操作系统&#xff0c;刚好手里有块Lichee RV Dock 的板子&#xff0c;所以在学了基础的"hello, world"程序后&#xff0c;想着能不能把这个程序烧录到板子上&#xff0c;简单的做个实验。 要完成这个任务&#xff0c;需要将程序烧录到sd卡上…

React环境初始化

环境初始化 学习目标&#xff1a; 能够独立使用React脚手架创建一个React项目 1.使用脚手架创建项目 官方文档&#xff1a;(https://create-react-app.bootcss.com/)    - 打开命令行窗口    - 执行命令      npx create-react-app projectName    说明&#xff1a…

面试题:说一下Redis中有哪些阻塞点以及如何解决?

文章目录 前言有哪些影响redis性能的因素客户端的阻塞磁盘带来的阻塞主从节点带来的阻塞切片集群的阻塞异步机制解决阻塞异步是如何进行的异步删除lazy-free小结 Redis 中的优秀设计有很多&#xff0c;今天我们一起来聊聊群友刷题遇到的&#xff1a;“Redis的异步机制 —— red…