springmvc 项目完整示例08 前台页面以及知识点总结

至此已经基本测试成功了,我们稍作完善,让它成为一个更加完整的项目

我们现在重新规划下逻辑

两个页面

一个登录页面

一个欢迎页面

登陆页面输入账号密码,登陆成功的话,跳转登陆成功 欢迎页面

并且,更新用户登录信息以及记录登录日志

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>标题</title>

</head>

<body>

${Info}

请输入用户名,密码登陆:

<form action="/bbs/checkLogin.do" meathod="post">

用户名:

<input type="text" name="userName">

<br>

密码:

<input type="password" name="password">

<br>

<input type="submit" value="登陆">

<input type="reset" value="重置">

</form>

</body>

</html>

如果使用一些c标签需要<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

并且要引入jstl jar包

welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>标题</title>

</head>

<body>

登陆成功!

<br>

欢迎光临!

</body>

</html>

controller

package com.bbs.web;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.bbs.domain.User;

import com.bbs.service.UserService;

@Controller

public class LoginController {

@Autowired

private UserService userService;

@RequestMapping(value="/login")

public String toLoginPage(HttpServletRequest request){

return "login";

}

@RequestMapping(value="/checkLogin")

public String loginPage(HttpServletRequest request,User user){

Boolean loginSucess = userService.hasMatchUser(user);

if(loginSucess){

userService.loginSucess(userService.findUserByUserName(user));

request.getSession().setAttribute("Info","");

return "welcome";

}else{

request.getSession().setAttribute("Info","请重新输入!!");

return "redirect:/login.do";

}

}

}

打开login展示登录页面

表单提交到checklogin

校验成功,执行登陆成功操作

失败重定向到登录页面

注意此处的

request.getSession().setAttribute("Info","请重新输入!!");

是放到session中的,如果只是request.setAttribute是不行的,页面读取不到

因为重定向了

相当于重新一个request,放进去的值就变化了

顺便记一下,这几个区别

session 一次会话

request 一次请求

就像两个人对话,request只有在你说一句话的时候,就有一个,别人说话,或者你说下一句话,就换了

对话 就是你们来来回回的说,他都是同一个

比如提交一个表单就是一个请求,打开一个超链接也是一个请求,当请求结束这个request也就消亡了

当用户第一次和服务器建立连接时,服务器就会产生一个session直到用户离开或超时,比如关闭浏览器session也会销毁

或者说,你存储在request中的,在当次请求中都是存在的,如果你redirect就不行了

但是,session,你页面怎么跳转,他都还在的

他们都可以存很多东西,能放得东西也没啥区别,区别主要在于声明周期

直接在web contain中进行对象的实例化。

内置对象

类型

作用域

pageContext    

javax.servlet.jsp.pageContext

page

request

javax.servlet.http.HttpServletRequest

request

response

javax.servlet.http.HttpServletResponse  

page

session

javax.servlet.http.HttpSession

session

application

javax.servlet.ServletContext

application

config

javax.servlet.ServletConfig

page

out

java.servlet.jsp.JspWriter

page

page

java.lang.Object

page

exception

java.lang.Throwable

page

顾名思义,内置对象就是本来就有的意思,直接可以使用

设置属性:public  void  setAttribute(String  name,Object.value)

取得属性:public  void  getAttribute(String  name)

看表格可以看出来,他们的作用域可以区分为四种

在一个页面范围内:page

在一次服务器请求范围内:request

在一次会话范围内:session

在一个应用服务器范围内:application

Session对象主要用于保存用户的各种信息,直到它的生命周期超过或被人为释放掉为止,可以通过session对象来判断此用户是否是合法用户。

Session对象是javax.Servlet.http.HttpSession接口的实例化对象,session属于http协议范畴之内的对象,所以只有唯一http包下有此接口,没有任何继承关系,用户只要一连接到服务器,则立刻分配一个session给用户。

spring原理 实践解析-简单的helloworld

spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途

spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

springmvc整合mybatis完整项目示例

springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目

springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

springmvc 项目完整示例03 小结

springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用

springmvc 项目完整示例05  日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用

springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

springmvc 项目完整示例08 前台页面以及知识点总结

maven项目整合springmvc整合mybatis

eclipse 创建maven 项目 动态web工程完整示例

eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏代码世界

Cookie、Session登陆验证相关介绍和用法

一、Cookie和Session   首先、HTTP协议是无状态的;所谓的无状态是指每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系...

4497
来自专栏北京马哥教育

文件和文件夹的个数是否对磁盘的IO有影响?

在linux和windows的亦或是其他操作系统的 文件系统 中,文件的个数、文件夹的个数、文件夹的层级数是否对磁盘的IO有影响?如果有,那么大概的阈值是多少?...

3336
来自专栏C/C++基础

Linux基础知识点

文件(包括目录)权限分为三类别,从左至右依次是:文件所属主的权限、文件所属所在用户组的权限和其他用户的权限。

2722
来自专栏腾讯云Elasticsearch Service

logstash input插件开发

logstash作为一个数据管道中间件,支持对各种类型数据的采集与转换,并将数据发送到各种类型的存储库,比如实现消费kafka数据并且写入到Elasticsea...

7004
来自专栏一个会写诗的程序员的博客

Cookie 和 Session 机制原理分析 & 区别对比

Web application servers are generally "stateless":

1612
来自专栏北京马哥教育

精通Linux常用的100+命令大全万字详解长文(珍藏版)

运维行业正在变革?推荐阅读:30万年薪Linux运维工程师成长魔法 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、...

58810
来自专栏猿人谷

使用asp调用.net xml web services

(是不是实际上可以用这个办法调用任何xml web services呢?高人答一下) 最近在做一个web services,由我来写文档。为了方便广大asp用户...

2817
来自专栏漏斗社区

你与敬业福还差一个yxcms app漏洞的距离

0x00 背景 之前有挖了yxcms app的一些漏洞,基本是后台的,打后台的知识也就发现了前台的存储XSS,然后前几天看到先知上有师傅发了前台的存储XSS...

3895
来自专栏阮一峰的网络日志

Systemd 入门教程:命令篇

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。 本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍...

3646
来自专栏芋道源码1024

分布式事务 TCC-Transaction 源码分析 —— 事务恢复

1. 概述 本文分享 TCC 恢复。主要涉及如下二个 package 路径下的类: org.mengyun.tcctransaction.recover Rec...

3923

扫码关注云+社区

领取腾讯云代金券