SSM小作品实现过程

新建一个maven项目

引入war包创建web工程,配置tomcat

导入以下依赖

spring-context                Spring容器

spring-tx                         Spring 事务管理

spring-jdbc                     Spring-jdbc操作数据库的api

spring-webmvc               实现Spring MVC

mybatis                           持久层框架

mybatis-spring                spring整合mybatis

mysql-connector-java      MySQL提供的JDBC驱动包

druid                                实现数据库连接池

jsp-api                              jsp文件使用的api

javax.servlet-api              使用servlet

jstl-api                              JSP标准标记库

jackson-core                    

jackson-databind             实现数据的序列化和反序列化

jackson-annotation

创建项目框架目录

java下各个包的作用

 config:进行jdbc,mybatis,拦截器配置

controller:匹配请求的URL并调用服务

domain:实体类,与entity包作用相似

intercepter:拦截器设置

mapper:操作数据库sql配置

service:服务包,提供实体类的一些操作

resources下包和文件的作用

mapper:进行数据库操作的xml配置

jdbc.properties:配置数据库连接信息

webapp包的作用

存放jsp,css,js,图片,视频等静态资源

部分功能实现

拦截未登录情况下对非登录页面的跳转 

在Session在查看是否有USER_SESSION属性,如果没有则没有登录,跳转到登录页面

使用requestURL.indexOf()方法判断请求,排除不想被拦截的页面

package intercepter;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ResourceInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //如果用户已经登录直接放行
        Object user=request.getSession().getAttribute("USER_SESSION");
        if(user!=null){
            return true;
        }
        //如果没有登录,我们判断是否访问的是登录相关功能,如果是,放行
        String requestURL=request.getRequestURI();
        if(requestURL.indexOf("login")>0){
            return true;
        }
        if(requestURL.indexOf("toregister")>0||requestURL.indexOf("register")>0){
            return true;
        }
        if(requestURL.indexOf("logout")>0){
            return true;
        }
        //如果不是登录相关功能,需要跳转到登录页面
        request.setAttribute("msg","请登录");
        request.getRequestDispatcher("/admin/login.jsp").forward(request,response);
        return false;
    }
}

用户实体对数据操作配置

注意多个参数要使用@Param()标识,否则会错

package mapper;
import domain.User;
import org.apache.ibatis.annotations.*;

public interface UserMapper {
    @Select("select * from users where user_email=#{email} and user_password=#{password} and user_status=0")
    @Results(id="userResult",value = {
            @Result(id=true,property="id",column="user_id"),
            @Result(property="name",column="user_name"),
            @Result(property="password",column="password"),
            @Result(property="email",column="user_email"),
            @Result(property="role",column="user_role"),
            @Result(property="status",column="user_status"),
    })
    public User findUserByEmailAndPassword(User user);

    @Update("update users set user_name=#{updatename} where user_id=#{id}")
    public void updateName(@Param("updatename") String updatename,@Param("id")Integer id);

    @Update("update users set user_role=#{updatephone} where user_id=#{id}")
    public void updatePhone(@Param("updatephone")String updatephone,@Param("id")Integer id);

    @Insert("insert into users (user_name,user_password,user_email,user_role,user_status) values (#{name},#{password},#{email},#{role},0)")
    public void addUser(User user);
}

游戏查询控制层

package controller;

import domain.Game;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import service.GameService;

import javax.servlet.http.HttpServletRequest;
@Controller
public class GameController {
    @Autowired
    private GameService gameService;
    @RequestMapping("/selectGame")
    public String selectGame(String gamename, HttpServletRequest request){
        System.out.println(gamename);
        Game game= gameService.selectGame(gamename);
        System.out.println(game.toString());
        if(game==null){
            //不存在此游戏
            request.setAttribute("gameMsg","没有此游戏");
        }else{
            //存在此游戏
            request.setAttribute("gameMsg","");
            request.getSession().setAttribute("GAME_SESSION",game);
        }
        return "game";
    }
}

页面展示

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值