栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM学习

参考:https://blog.csdn.net/qq_33369905/article/details/106647313

关于servlet编程: 1.可以通过继承HttpServlet实现Servlet程序

在一般项目开发中一般很少使用Servlet接口来实现Servlet程序,一般都是使用继承HttpServlet类的方式去实现Serlvet程序

2.根据需要重写doGet和doPost方法
package com.kuang.servlet;
 
//实现Servlet接口
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //取得参数
        String method = req.getParameter("method");
        if (method.equals("add")){
            req.getSession().setAttribute("msg","执行了add方法");
        }
        if (method.equals("delete")){
            req.getSession().setAttribute("msg","执行了delete方法");
        }
        //业务逻辑
        //视图跳转
        req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req,resp);
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

此时 在web.xml中配置的就是



    
        HelloServlet
        com.kuang.servlet.HelloServlet
    
    
        HelloServlet
        /user
    

springMVC的原理

Spring MVC是Spring framework的一部分,是基于Java实现MVC的轻量级Web框架。

MVC框架要做哪些事情

将url映射到java类或java类的方法 .

封装用户提交的数据 .

处理请求--调用相关的业务处理--封装响应数据 .

将响应的数据进行渲染 . jsp / html 等表示层数据 .

SpringMVC的原理如下图所示:

当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。



以上的实线部分不需要自己做

虚线部分是自己实现的

springmvc运行原理看这个https://www.bilibili.com/video/BV1aE41167Tu?p=5

使用注解开发时:

这个替代了原来的映射器、适配器

使用注解开发时springmvc-servlet.xml的配置

加了controller的注解,自动被如下扫描:

之前的controller是手动装配实现的



下面是springmvc-servlet.xml

还有web.xml里面配置dispathServlet

这里是绑定文件:

启动起来:


8、编写我们要操作业务Controller ,要么实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图;

package com.kuang.controller;
 
 
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
 
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
//注意:这里我们先导入Controller接口


public class HelloController implements Controller {
 
 
   public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
       //ModelAndView 模型和视图
       ModelAndView mv = new ModelAndView();
 
 
       //封装对象,放在ModelAndView中。Model
       mv.addObject("msg","HelloSpringMVC!");
       //封装要跳转的视图,放在ModelAndView中
       mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
       return mv;
  }
   
}

9、将自己的类交给SpringIOC容器,注册bean



原文:https://blog.csdn.net/qq_33369905/article/details/106647319

以上接口返回的就是ModelAndView对象

实现接口创建ModelAndView对象有弊端:

对于每个对象都需要创建一个ModelAndView
  • @controller 控制器(注入服务)
    用于标注控制层,相当于struts中的action层

  • @service 服务(注入dao)
    用于标注服务层,主要用来进行业务的逻辑处理

  • @repository(实现dao访问)
    用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
    .

  • @component 把普通pojo实例化到spring容器中)

在自动扫描此类的时候,类名转化为spring bean,即相当中的id。id由类名而来,id遵从:不指定bean的名称,默认为类名首字母小写其它不变,之后赋给id

一旦使用关于Spring的注解出现在类里,例如我在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component
参考:https://blog.csdn.net/qq_42000661/article/details/107413696
controller里面的请求匹配请求映射就需要@RequestMapping(迎合访问地址)

vaule可以直接省略


解释session:当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session
原文链接:https://blog.csdn.net/weixin_42217767/article/details/92760353

也可以通过ModelAndView实现setViewName

重定向:

默认值不会生成视图解析器





默认值不会生成视图解析器

Mybatis

1、搭建实验数据库

CREATE DATAbase `mybatis`;
 
USE `mybatis`;
 
DROP TABLE IF EXISTS `user`;
 
CREATE TABLE `user` (
  `id` int(20) NOT NULL,
  `name` varchar(30) DEFAULT NULL,
  `pwd` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
insert  into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');

2、导入MyBatis相关 jar 包

GitHub上找


    org.mybatis
    mybatis
    3.5.2


    mysql
    mysql-connector-java
    5.1.47

3、编写MyBatis核心配置文件




    
        
            
            
                
                
                
                
            
        
    
    
        
    

4、编写MyBatis工具类

查看帮助文档

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
 
public class MybatisUtils {
 
    private static SqlSessionFactory sqlSessionFactory;
 
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    //获取SqlSession连接
    public static SqlSession getSession(){
        return sqlSessionFactory.openSession();
    }

5、创建实体类

public class User {
    
    private int id;  //id
    private String name;   //姓名
    private String pwd;   //密码
    
    //构造,有参,无参
    //set/get
    //toString()
    
}

7、编写Mapper.xml配置文件

namespace 十分重要,不能写错!




  

8、编写测试类

Junit 包测试

9、运行测试,成功的查询出来的我们的数据,ok!

问题说明

可能出现问题说明:Maven静态资源过滤问题


    
        src/main/java
        
            ***.xml
        
        false
    
    
        src/main/resources
        
            ***.xml
        
        false
    

JDBC的参考:https://www.runoob.com/w3cnote/jdbc-use-guide.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284268.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号