登录实现之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进行处理 设置响应编码格式 获取请求信 ...
随机推荐
- CentOS里alias命令
alias命令 功能描述:我们在进行系统的管理工作一定会有一些我们经常固定使用,但又很长的命令.那我们可以给这些这一长串的命令起一个别名.之后还需要这一长串命令时就可以直接以别名来替代了.系统中已经有 ...
- 【Java】-NO.16.EBook.4.Java.1.001-【疯狂Java讲义第3版 李刚】- UML
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.001-[疯狂Java讲义第3版 李刚]- Style:EBook Series:Java Since ...
- Oracle SQL常用语句
1,查询插入 insert into user_role(account_id, role_id, create_user) select t.employee_id, 'BC8FBF8B1D9843 ...
- 2018-2019-1 20189221《Linux内核原理与分析》第四周作业
2018-2019-1 20189221<Linux内核原理与分析>第四周作业 教材学习:<庖丁解牛Linux内核分析> 第 3 章 MenuOS的构造 计算机三大法宝:存储程 ...
- 更新合并数组的es6方法
- js图片压缩
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Hybrid设计--H5和Native,收口
Native提供容器,不要涉及太多的业务,否则就失去了通用性. H5和Native的差异是短时间内解决不了的,React Native 超越Hydrid跨平台解决方案. 前端和 Native约定了一个 ...
- hbase-java-api003(put list)
package api; import java.io.IOException; import java.util.ArrayList; import java.util.List; import o ...
- activity bj draw 流程图
- ubuntu之redis集群配置
redis3版本以上支持集群 需要ruby的支持 root@iZ2zejfbthvbzs5lxf37vjZ:/usr/local/src/redis-3.2.9/src# apt-get instal ...