zl程序教程

您现在的位置是:首页 >  后端

当前栏目

springmvc 项目完整示例08 前台页面以及知识点总结详解编程语言

SpringMVC知识点项目编程语言 详解 示例 总结 页面
2023-06-13 09:20:45 时间

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

我们现在重新规划下逻辑

两个页面

一个登录页面

一个欢迎页面

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

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

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给用户。

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/15644.html

cjava