新建BackgroundController类:

package cn.bdqn.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping("/background/")
public class BackgroundController {
@RequestMapping("home")
public String home(){
return "background/home";
} }
package cn.bdqn.mvc.controller;

import javax.servlet.http.HttpSession;
import javax.validation.Valid; import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import cn.bdqn.mvc.form.LoginForm; @Controller
@RequestMapping("/")
public class LoginController {
//方法的返回值返回一个对象\
@ModelAttribute("form")
public LoginForm getForm(){
return new LoginForm();
} //我发送请求要访问login.html页面 @RequestMapping(value="login",method=RequestMethod.GET)
public String showLogin(){ return "login";
} //建议不用实体类接受请求,建议单独定义一个表单类
@RequestMapping(value="login",method=RequestMethod.POST)
public String doLogin2(
@Valid@ModelAttribute("form")LoginForm loginForm,//这样转发回表单页面的时候会自动回填数据
BindingResult result,//服务器端验证用
HttpSession session
){
//是否发生服务器端验证错误,hasErrors()是管所有的错误
if(result.hasErrors()){
return "login";
} if(!loginForm.getLoginName().equals("admin")){
result.rejectValue("loginName","form", "用户名输入错误"); //reject是驳回的意思
}else if (!loginForm.getPassword().equals("123456")) {
result.rejectValue("password","form", "密码输入错误");
}
//如果添加了错误信息,则转发回登陆表单页面
if(result.hasErrors()){
return "login";
}
//将登陆成功的用户名存入session
session.setAttribute("loginName", loginForm.getLoginName());
//重定向到后台首页
return "redirect:background/home.html";
}
}

SpringMVC 模拟登陆的更多相关文章

  1. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  2. Python模拟登陆新浪微博

    上篇介绍了新浪微博的登陆过程,这节使用Python编写一个模拟登陆的程序.讲解与程序如下: 1.主函数(WeiboMain.py): import urllib2 import cookielib i ...

  3. PHP 之 CURL 模拟登陆并获取数据

    1.CURL模拟登陆的流程和步骤 2.tempnam 创建一个临时文件 3.使用CURL模拟登陆到PHP100论坛 <?php $cookie_file = tempnam('./temp',' ...

  4. NetworkComms V3 模拟登陆

    演示NetworkComms V3的用法 例子很简单 界面如下: 服务器端代码: 开始监听: //服务器开始监听客户端的请求 Connection.StartListening(ConnectionT ...

  5. pytho简单爬虫_模拟登陆西电流量查询_实现一键查询自己的校园网流量

    闲来无事,由于校园内网络是限流量的,查询流量很是频繁,于是萌生了写一个本地脚本进行一键查询自己的剩余流量. 整个部分可以分为三个过程进行: 对登陆时http协议进行分析 利用python进行相关的模拟 ...

  6. python模拟登陆知乎并爬取数据

    一些废话 看了一眼上一篇日志的时间 已然是5个月前的事情了 不禁感叹光阴荏苒其实就是我懒 几周前心血来潮想到用爬虫爬些东西 于是先后先重写了以前写过的求绩点代码 爬了草榴贴图,妹子图网,后来想爬婚恋网 ...

  7. php模拟登陆的两种实现方法分析

    php模拟登陆的实现方法分析 本文实例分析了php模拟登陆的实现方法.分享给大家供大家参考.具体分析如下: php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网.具体实例代码如下: 1)使 ...

  8. python 模拟登陆,请求包含cookie信息

    需求: 1.通过GET方法,访问URL地址一,传入cookie参数 2.根据地址一返回的uuid,通过POST方法,传入cooki参数 实现思路: 1.理解http的GET和POST差别 (网上有很多 ...

  9. 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

    [前提] 想要实现使用某种语言,比如Python,C#等,去实现模拟登陆网站的话,首先要做的事情就是使用某种工具,去分析本身使用浏览器去登陆网页的时候,其内部的执行过程,内部逻辑. 此登陆的逻辑过程, ...

随机推荐

  1. ASP.NET MVC API 路由生成规则

    我们都知道调用ASP.NET MVC的某些API函数(诸如:Url.Action.RedirectToAction等)可以生成URL,ASP.NET MVC会根据调用API函数时传入的参数去匹配系统定 ...

  2. Java字符串排列算法

    Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...

  3. 160926、Java-SpringMVC统一异常处理

    从零开始学 Java - Spring MVC 统一异常处理 看到 Exception 这个单词都心慌 如果有一天你发现好久没有看到Exception这个单词了,那你会不会想念她?我是不会的.她如女孩 ...

  4. 【Pro ASP.NET MVC 3 Framework】.学习笔记.12.ASP.NET MVC3的细节:URLs,Routing和Areas

    Adam Applied ASP.NET 4 in Context 1 介绍Routing系统 在引入MVC之前,ASP.NET假定被请求的URLs和服务器硬盘上的文件之间有着直接关系.服务器的任务是 ...

  5. ALTFP_CONVERT IP使用与仿真

    ALTFP_CONVERT IP使用与仿真   近期项目要使用到整型数据转浮点型数据,将16位的整数转换为单精度浮点数(32bit).本打算自己写逻辑实现的,不过考虑到本身项目时间紧,能力也有限,就没 ...

  6. 时间戳转换成Date

    SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); String date = for ...

  7. Zend Studio实用快捷键一览表

    CTRL+B | 重构项目CTRL+D | 删除一行CTRL+E | 搜索已打开的文件名CTRL+F | 打开本文件的搜索/替换 ,只搜索当前文件CTRL+H | 打开搜索替换窗口 ,可搜索整个磁盘. ...

  8. js 闭包理解

    闭包主要应用于两种情况: 1 函数作为返回值. 2 函数作为参数传递. 第一种举例: function fn(){ var max = 10; return function bar(){ if(x ...

  9. vnc里鼠标拖动终端就会产生ctrl+c终端

    然后把有道词典给关了就好了...

  10. xheditor上传图片配置

    二. 源码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Xeditor.a ...