#知识小点:

防止乱码的字符集的设置:

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的更多相关文章

  1. 带着新人简单看看servlet到springmvc

    好久都没有写博客了,不是因为自己懒了,而是总感觉自己知道的只是太少了,每次想写博客的时候都不知道怎么下手,不过最近看到一篇博客说的是springmvc,给了我比较大的兴趣,感觉一下子对整个spring ...

  2. struts2,servlet和springmvc的单例多例问题

    struts2,servlet和springmvc的单例多例问题 原创 2017年06月12日 09:59:21 标签: struts2 / servlet / springmvc / 单例 / 多例 ...

  3. 文件上传(Servlet/Struts2/SpringMVC)

    文件下载(Servlet/Struts2)的链接:http://www.cnblogs.com/ghq120/p/8328093.html 文件上传 Servlet实现 要实现文件上传的功能,必须在f ...

  4. servlet到springmvc的演进

    1.简单看看servlet 1.1.servlet继承关系 先看看下面servlet的这个继承关系,有点印象即可(可以暂时忽略ServletConfig,这个接口就是让我们可以从web.xml文件中拿 ...

  5. 怎么实现登录之后跳转到登录之前的页面?SpringMVC+Freemarker

    项目中,想实现一个功能. 直接访问某个需要登录的url,比如/addArticle,可能会跳转到登录页面login.html. 登录成功之后,自动跳转到/addArticle这个登录前的页面,继续登录 ...

  6. 以登录实现理解Servlet+jsp+JavaBean开发

    写在前面:菜鸟拙见,望请纠正 学过servlet的都知道,书本上一直说servlet一直作为控制器使用,它不实现view层,也不做具体的事务处理,那servlet到底是干什么的哪?怎么合理的用它呐?? ...

  7. Servlet Struts2 SpringMVC 获取参数与导出数据 方法比较

    servlet中通过request.getParameter()从网页获取参数 通过request session servletContext几个域对象的setAttribute(String ,O ...

  8. Servlet和SpringMVC补课

    1.web.xml加载顺序 http://mianhuaman.iteye.com/blog/1105522 关键点:ServletContext -> context-param -> ...

  9. 登录页面练习servlet

    登录练习: 1创建登录页面 创建servlet进行登录页面请求 2点击登录完成操作 浏览器发送请求到服务器(用户信息+其他数据 )3服务器调用对应的servlet进行处理 设置响应编码格式 获取请求信 ...

随机推荐

  1. CentOS里alias命令

    alias命令 功能描述:我们在进行系统的管理工作一定会有一些我们经常固定使用,但又很长的命令.那我们可以给这些这一长串的命令起一个别名.之后还需要这一长串命令时就可以直接以别名来替代了.系统中已经有 ...

  2. 【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 ...

  3. Oracle SQL常用语句

    1,查询插入 insert into user_role(account_id, role_id, create_user) select t.employee_id, 'BC8FBF8B1D9843 ...

  4. 2018-2019-1 20189221《Linux内核原理与分析》第四周作业

    2018-2019-1 20189221<Linux内核原理与分析>第四周作业 教材学习:<庖丁解牛Linux内核分析> 第 3 章 MenuOS的构造 计算机三大法宝:存储程 ...

  5. 更新合并数组的es6方法

  6. js图片压缩

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. Hybrid设计--H5和Native,收口

    Native提供容器,不要涉及太多的业务,否则就失去了通用性. H5和Native的差异是短时间内解决不了的,React Native 超越Hydrid跨平台解决方案. 前端和 Native约定了一个 ...

  8. hbase-java-api003(put list)

    package api; import java.io.IOException; import java.util.ArrayList; import java.util.List; import o ...

  9. activity bj draw 流程图

  10. ubuntu之redis集群配置

    redis3版本以上支持集群 需要ruby的支持 root@iZ2zejfbthvbzs5lxf37vjZ:/usr/local/src/redis-3.2.9/src# apt-get instal ...