L1302spring mvc 核心应用-1

L130201X1

springmvc实现超市管理系统的用户登录操作

在L1301的项目基础上进行改造实现

1、在resource目录下新建applicationContext-jdbc.xml,将spring的配置文件头拷贝进来后,加入以下代码后保存,代码主要是用于扫描指定包下面的文件,用于注解

<context:component-scan base-package="cn.smbms.service"></context:component-scan>

<context:component-scan base-package="cn.smbms.dao"></context:component-scan>

2、打开web.xml,配置以下代码

(1)配置指向spring配置文件的代码:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext-*.xml</param-value>

扫描二维码关注公众号,回复: 7801057 查看本文章

  </context-param>

(2)配置监听,搜索ContextLoaderListener拷贝其全限定名,这个监听实现了servletcontextlistener监听接口,可以在web容器启动的时候,去初始化spring容器,前提就是要在web.xml中去配置

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

  </listener>

3、springmvc-servlet.xml代码没有改动

4、改造dao层

在cn.smbms下新建dao文件夹,下面建立user文件夹,在user文件夹里面拷贝上UserDao.java和UserDaoImpl.java,在UserDaoImpl.java的类名前面加上@Repository注解

5、改造service层

在cn.smbms下新建service文件夹service,下面建立user文件夹,在user文件夹里面拷贝上UserService.java和UserServiceImpl.java,在UserServiceImpl.java的类名前面加上@Service注解,同时在private UserDao userDao;前面加上@Resource,

6、创建cn.smbms.controller层

UserController.java的代码如下:

@Controller

@RequestMapping("/user")

public class UserController{

private Logger logger=Logger.getLogger(UserController.class);

@Resource

private UserService userService;

//实现跳转到登陆页

@RequestMapping(value="/login.html")

public String login(){

logger.info("UserController welcome SMBMS============");

return "login";}//实现登录

@RequestMapping(value="/dologin.html",method=RequestMethod.POST)

public String dologin(@RequestParam String userCode,

@RequestParam String userPassword){//调用service方法,进行用户匹配

User user=userService.login(userCode, userPassword);

if(null !=user){//登陆成功 //页面跳转(frame.jsp)

return "redirect:/user/main.html";

}else{ //页面跳转(login.jsp)

return "login"; } }

@RequestMapping(value="/main.html")

public String main(){

return "frame"; }}

7、拷贝资源文件进入项目

(1)拷贝静态资源文件,calendar、css、images、js

(2)公共页面foot.jsp、head.jsp、frame.jsp、login.jsp

(3)工具包:cn.smbms.tools包含ConfigManager.java、Constants.java、Singleton.java、TestSingleton.java

(4)拷贝:BaseDao.java类

(5)拷贝数据库文件database.properties和日志文件log4j.properties

(6)拷贝数据库连接所需要的jar包mysql-connector-java-5.1.0-bin.jar

8、测试结果:输入正确的用户名和密码进入frame页面,错误进入dologin页面

9、在web的欢迎页面配置中配置

<welcome-file-list>

   <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>

</welcome-file-list>

可将浏览器访问网址由

http://localhost:8080/L130101X1SpringMVC/user/login.html改为

http://localhost:8080/L130101X1SpringMVC/

L130203X1 Springmvc实现用户登录的页面session提示功能

1、改造UserController.java中代码为以下

@Controller

@RequestMapping("/user")

public class UserController{

private Logger logger=Logger.getLogger(UserController.class);

@Resource

private UserService userService;

//实现跳转到登陆页

@RequestMapping(value="/login.html")

public String login(){

logger.info("UserController welcome SMBMS============");

return "login";}//实现登录

@RequestMapping(value="/dologin.html",method=RequestMethod.POST)

public String dologin(@RequestParam String userCode,

@RequestParam String userPassword,

HttpSession session, HttpServletRequest request){

//调用service方法,进行用户匹配

User user=userService.login(userCode, userPassword);

if(null !=user){//登陆成功

session.setAttribute(Constants.USER_SESSION, user);

//页面跳转(frame.jsp)

return "redirect:/user/main.html";

}else{

//页面跳转(login.jsp),带出提示信息

request.setAttribute("error", "用户名或密码不正确");

return "login"; }}

@RequestMapping(value="/main.html")

public String main(HttpSession session){

if(session.getAttribute(Constants.USER_SESSION)==null){

return "redirect:/user/login.html";}

return "frame";}}

2、测试结果,登录成功有显示下午好! 系统管理员 , 欢迎你!登录失败:有显示用户名或密码不正确

L130203X2  使用springmvc实现页面效果的映射

1、在WebRoot下面新建statics文件夹,将calendar、css、images、js文件放入其中

2、打开springmvc-servlet.xml配置以下代码

<mvc:resources location="/statics/"

mapping="/statics/**"/>

3、调整页面中的样式引用路径

4、浏览器访问出现样式

L130204X1 测试局部的异常处理

1、在UserController.java中增加以下代码

@RequestMapping(value="exlogin.html",method=RequestMethod.GET)

public String exLogin(@RequestParam String userCode,

@RequestParam String userPassword){

logger.info("exLogin =========");

User user=userService.login(userCode, userPassword);

if(user==null){

throw new RuntimeException("用户名或者密码不正确");}

return "redirect:/user/main.html";}

@ExceptionHandler(value={RuntimeException.class})

public String handlerException(RuntimeException e,

HttpServletRequest req){

req.setAttribute("e", e);

return "error"; }

2、jsp目录下新建error.jsp,里面代码为

${e.message }

3、浏览器输入网址访问

http://localhost:8080/L130101X1SpringMVC/user/exlogin.html?userCode=admin&userPassword=123

4、结果浏览器输出:用户名或者密码不正确

L130204X2 测试全部的异常处理

1、注释掉UserController.java中的局部变量配置代码

@ExceptionHandler(value={RuntimeException.class})

public String handlerException(RuntimeException e,

2、进入springmvc-servlet.xml中配置全局变量设置

<bean

class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

<property name="exceptionMappings">

<props>

<prop key="java.lang.RuntimeException">error</prop>

</props>

</property>

</bean>

3、将error.jsp中的代码变更为

${exception.message }

4、浏览器访问

http://localhost:8080/L130101X1SpringMVC/user/exlogin.html?userCode=admin&userPassword=123

结果:用户名或者密码不正确

L130205X1 改造实现用户查询功能

SSJ--->springmvc,springjdbc

1、在UserController.java中增加以下代码

@RequestMapping(value="/userlist.html")

public String gerUserList(Model model,

@RequestParam(value="queryname",required=false) String queryUserName,

@RequestParam(value="queryUserRole",required=false) String queryUserRole,

@RequestParam(value="pageIndex",required=false) String pageIndex ){

logger.info("getUserList ---- > queryUserName: " + queryUserName);

logger.info("getUserList ---- > queryUserRole: " + queryUserRole);

logger.info("getUserList ---- > pageIndex: " + pageIndex);

int _queryUserRole = 0;

List<User> userList = null;

int pageSize = Constants.pageSize;//设置页面容量

int currentPageNo = 1; //当前页码

if(queryUserName == null){

queryUserName = "";}

if(queryUserRole != null && !queryUserRole.equals("")){

_queryUserRole = Integer.parseInt(queryUserRole);}

if(pageIndex != null){

try{currentPageNo = Integer.valueOf(pageIndex);

}catch(NumberFormatException e){

return "redirect:/user/syserror.html"; }   }

int totalCount = userService.getUserCount(queryUserName,_queryUserRole); //总数量(表)

PageSupport pages=new PageSupport();

pages.setCurrentPageNo(currentPageNo);

pages.setPageSize(pageSize);

pages.setTotalCount(totalCount);

int totalPageCount = pages.getTotalPageCount();//总页数

if(currentPageNo < 1){ //控制首页和尾页

currentPageNo = 1;

}else if(currentPageNo > totalPageCount){

currentPageNo = totalPageCount;   }

userList = userService.getUserList(queryUserName,_queryUserRole,currentPageNo,pageSize);

model.addAttribute("userList", userList);

List<Role> roleList = null;

roleList = roleService.getRoleList();

model.addAttribute("roleList", roleList);

model.addAttribute("queryUserName", queryUserName);

model.addAttribute("queryUserRole", queryUserRole);

model.addAttribute("totalPageCount", totalPageCount);

model.addAttribute("totalCount", totalCount);

model.addAttribute("currentPageNo", currentPageNo);

return "userlist";}

@RequestMapping(value="/syserror.html")

public String sysError(){

return "syserror"; }

2、将相关共用类拷贝进入工程

(1)cn.smbms.dao下新建role目录,拷贝RoleDao.java,RoleDaoImpl.java

(2)cn.smbms.pojo下拷贝Role.java

(3)cn.smbms.service下新建role目录,拷贝RoleService.java、RoleServiceImpl.java

(4)jsp下面拷贝userlist.jsp、rollpage.jsp,同时修改页面中的引用路径

猜你喜欢

转载自www.cnblogs.com/pere/p/11827551.html