登录实现之servlet和SpringMVC
#知识小点:
防止乱码的字符集的设置:
request.setCharacterEncoding():确定从请求端发送到给服务器的编码是汉字字符集。该方法对get方法
无效,只对post方法有效。若要对get方法有效,则要在server.xml指定。
response.setCharacterEncoding():用来服务器给客户端的编码。或者设置response.setContentType()
方法来设置Http响应的编码。
说明:一般默认是按照iso8859-1解码,这个只支持英文,不支持中文,所以一般支持中文要改为utf-8。
----------------------------------------------------------------------------------
转发和重定向:转发,只能在当前项目工程或者站点转发,一次请求和一次响应,重定向是两次请求,耗时相对
较长,所以一般既能用转发,又能够用重定向的话,就用重定向,但是如果要跳转到其它站点,比如百度,则不
能用转发,只能用重定向。
----------------------------------------------------------------------------------
get和post使用场景: ...
参看 https://blog.csdn.net/shangrila_kun/article/details/83658646
-----------------------------------------------------------------------------------
#登录程序方案一:
servlet(session和转发、重定向)
LoginServlet.java
package web; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/**
* s1:设置请求端字符编码为utf-8
* s2:从前端页面获取请求参数
* s3:如果"king".equals(uname) && "test".equals(pwd)为true
* 则表示之前登录过的,则获取其session对象(getSession方法),并绑定它的值,
* 并重定向到welcom.jsp, 否则,在请求端绑定值并给出错误提示,
* 并转发到"login.jsp";
* */
public class LoginServlet extends HttpServlet { @Override
protected void service(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException {
request.setCharacterEncoding("utf-8"); //读取用户名和密码
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd"); if ("king".equals(uname) && "test".equals(pwd)) {
//说明之前登录了,则获取和绑定session对象,并重定向到welcome.jsp
HttpSession session = request.getSession();
session.setAttribute("user", uname);
response.sendRedirect("welcome.jsp"); //重定向要保持同一站点
} else {
//request.setAttribute();它与转发联用的,并且能用于页面传值
request.setAttribute("login_failed","用户名或密码错误!");
request.getRequestDispatcher("login.jsp").forward(request,response); }
}
}
welcome.jsp
<%
Object obj = session.getAttribute("user");
if(obj == null){
response.sendRedirect("login.jsp");
return;
}
%>
<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<html>
<head> </head>
<body style="font-size:30px;">
<h1 align="center" style="color:red;">恭喜你,登录成功!</h1>
<%
System.out.println("登录成功...");
%>
</body>
</ht
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<form action="login" method="post">
<fieldset>
<legend>登录</legend>
用户名:<input name="uname"/>
<%
String msg =(String)request.getAttribute("login_failed");
%>
<%=msg == null ? "" : msg%>
<br/>
密码:<input type="password" name="pwd"/><br/>
<input type="submit" value="确定"/>
</fieldset>
</form>
</body> </body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>web.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>someServlet</servlet-name>
<servlet-class>web.SomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>someServlet</servlet-name>
<url-pattern>/some</url-pattern>
</servlet-mapping> </web-app>
登录实现之servlet和SpringMVC的更多相关文章
- 带着新人简单看看servlet到springmvc
好久都没有写博客了,不是因为自己懒了,而是总感觉自己知道的只是太少了,每次想写博客的时候都不知道怎么下手,不过最近看到一篇博客说的是springmvc,给了我比较大的兴趣,感觉一下子对整个spring ...
- struts2,servlet和springmvc的单例多例问题
struts2,servlet和springmvc的单例多例问题 原创 2017年06月12日 09:59:21 标签: struts2 / servlet / springmvc / 单例 / 多例 ...
- 文件上传(Servlet/Struts2/SpringMVC)
文件下载(Servlet/Struts2)的链接:http://www.cnblogs.com/ghq120/p/8328093.html 文件上传 Servlet实现 要实现文件上传的功能,必须在f ...
- servlet到springmvc的演进
1.简单看看servlet 1.1.servlet继承关系 先看看下面servlet的这个继承关系,有点印象即可(可以暂时忽略ServletConfig,这个接口就是让我们可以从web.xml文件中拿 ...
- 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker
项目中,想实现一个功能. 直接访问某个需要登录的url,比如/addArticle,可能会跳转到登录页面login.html. 登录成功之后,自动跳转到/addArticle这个登录前的页面,继续登录 ...
- 以登录实现理解Servlet+jsp+JavaBean开发
写在前面:菜鸟拙见,望请纠正 学过servlet的都知道,书本上一直说servlet一直作为控制器使用,它不实现view层,也不做具体的事务处理,那servlet到底是干什么的哪?怎么合理的用它呐?? ...
- Servlet Struts2 SpringMVC 获取参数与导出数据 方法比较
servlet中通过request.getParameter()从网页获取参数 通过request session servletContext几个域对象的setAttribute(String ,O ...
- Servlet和SpringMVC补课
1.web.xml加载顺序 http://mianhuaman.iteye.com/blog/1105522 关键点:ServletContext -> context-param -> ...
- 登录页面练习servlet
登录练习: 1创建登录页面 创建servlet进行登录页面请求 2点击登录完成操作 浏览器发送请求到服务器(用户信息+其他数据 )3服务器调用对应的servlet进行处理 设置响应编码格式 获取请求信 ...
随机推荐
- 怎样使用EOS.JS的API
https://medium.com/coinmonks/how-to-use-eosjs-api-1-770b037b22ad https://blog.csdn.net/mongo_node/ar ...
- Mongodb 基础 数据导入导出和用户管理
数据导出 导出命令使用方式 mongoexport---->csv/json使用 参数: -d 库名 -c 表名 -f field1,field2....列名 -q 查询条件 -o 导出文件名 ...
- Java Selenium - 浏览器操作
浏览器主要操作方法来自接口 org.openqa.selenium.WebDriver , 实现于org.openqa.selenium.remote.RemoteWebDriver这个类,然后不同浏 ...
- svn回复历史版本的操作方法
svn恢复历史版本的操作方法svn update 保证最新svn log login.php 获得版本号svn diff -r 11026:11027 login.php 发现11027出问题svn ...
- ajax提交完表单数据依然跳转的解决办法
1. 既然ajax提交数据,就把表单里面submit按钮换掉,因为触发submit他就会跳转页面 提交的时候他会先触发ajax 再触发submit的提交 2.如果确定了表单没有submit,那么把提交 ...
- Vue项目中跨域的几种方式
经常使用vue + webpack搭建项目,但在请求某些json数据时存在跨域问题,此时有几种修改方法 1. 修改后台header, 但如果只是请求外部数据,是没法修改后台配置的 header('Ac ...
- VS 应用模板 所交税和实发工资的运算
double SFGZ, SL, SSKCS, YFGZ,a,YJS; //应发工资(基本工资),税率,速算扣除数,应发工资,判断标准,交多少税 //double QZD = 3500;//起征点 无 ...
- Mysql由浅入深
1. Mysql的安装方式 1. yum安装mysql 适合对数据库要求不太高的场合,例如:并发不大,公司内部,企业内部. 1. 官网下载yum源,wget https://dev.mysql.c ...
- Mysql8.0.11安装以及注意事项
一.环境配置 首先在官网下载最新的mysql8.0.11数据库,解压到你需要放置的盘符最好不要有中文,然后新建MYSQL_HOME,参数为mysql解压后安装文件的bin文件路径如我的:变量名:MYS ...
- Python全栈-网络编程基础
一.C/S架构 1.硬件C/S架构 如PC-打印机 2.软件C/S架构 如PC-网站服务器 参照: https://baike.baidu.com/item/Client%2FServer/15044 ...