zoukankan      html  css  js  c++  java
  • 接上篇—用spring注入DBbean,并使用maven管理

    接着上篇的登陆功能,用spring的依赖注入和maven的管理,又实现了一遍。新增了注册功能。

    有两个目标:使用spring和使用maven

    目录结构

    首先是目标1:使用spring的依赖注入,注入bean,LoginServlet不再自己创建DBdao对象。

    LoginServlet.java
    
    import java.io.IOException;
    import java.io.PrintStream;
    
    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import dao.DBdao;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginServlet extends HttpServlet{
    	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
    	{
    		request.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    
    		PrintStream out = new PrintStream(response.getOutputStream());
    
    		String name = request.getParameter("userName");
    		String password = request.getParameter("password");
    
    		Connection conn = null;
    		Statement statement = null;
    		String sql = "select * from user where username="+"'"+name+"'";
    /*********************************/
    		ApplicationContext context = new ClassPathXmlApplicationContext(
    										new String[] {"spring-config.xml"});
    
    		DBdao db = (DBdao)context.getBean("DBdao",DBdao.class);										
    /*********************************/
    		try{
    			//获得数据库连接
    			conn = db.getConnection();
    			statement = conn.createStatement();
    			//执行sql查询,并返回结果集对象
    			ResultSet rs = statement.executeQuery(sql);
    
    			if(rs.next()){
    				if(rs.getString("password").equals(password)){
    					out.print("<h1>success</h1>");
    				}
    			}
    		}
    		catch(Exception e){
    			e.printStackTrace();
    		}
    	}
    }
    

    要点在这两句:

    		ApplicationContext context = new ClassPathXmlApplicationContext(
    										new String[] {"spring-config.xml"});
    
    		DBdao db = (DBdao)context.getBean("DBdao",DBdao.class);	
    
    • ApplicationContext是一个接口,ClassPathXmlApplicationContext实现了该接口,然后从类加载路径加载配置文件
    • 调用ApplicationContext控制反转容器的getBean方法,由容器通过xml配置文件创建对象传给LoginServlet(需要强制类型转换)。
    spring-config.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
    
        <bean name="DBdao" class="dao.DBdao"/>
    
    </beans>
    

    然后只需要这样,就能使用Spring的依赖注入了。

    然后是目标2:使用maven。

    很好用。第一次用 [照着这](http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html) ,5分钟完成。

    在这,我的理解是maven联网从自己的资源中心下载所有需要的jar包,包括maven需要的和项目需要的,自己无需再去官网下载spring,struts啥的jar了。
    然后是pom.xml文件,是maven的本项目配置文件,放在根目录下

    pom.xml
    
    <?xm version="1.0" encoding="UTF-8"?>
    
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2002/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>geng.test</groupId>
        <artifactId>geng.test</artifactId>
        <version>0.1.0</version>
    
    <build>
    <finalName>wang</finalName>
    <plugins>
    </plugins>
    </build>
    
    <dependencies>
        <dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>5.1.6.RELEASE</version>
        </dependency>
    
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-beans</artifactId>
    		<version>5.1.6.RELEASE</version>
        </dependency>
    
    
        <dependency>
    		<groupId>javax.servlet.jsp</groupId>
    		<artifactId>jsp-api</artifactId>
    		<version>2.1</version>
        </dependency>
    
        <dependency>
    		<groupId>javax.servlet</groupId>
    		<artifactId>javax.servlet-api</artifactId>
    		<version>3.0.1</version>
        </dependency>
    </dependencies>
    
    <properties>
        <java.version>1.8</java.version>
    </properties>
    
    </project>
    

    在dependecy中填项目需要的依赖

    1. <modelVersion>标签填4.0
    2. <finalName>标签填项目的名字
    • 最后在根目录下使用mvn package war:war命令就会自动生成war打包文件
    • 把war放到tomcat的webapp下就可以访问项目了

    maven下载的jar都会存在用户目录下的.m2文件夹中,因此这个文件夹可能会很大

    项目的文件树必须是固定的,只能在src下的project或com下写源文件,resources下写配置文件,资源文件,webapp下写web.xml和jsp

    maven在windows下的安装 (https://www.cnblogs.com/happyday56/p/8968328.html)

    manen在linux下的安装,下载二进制包,解压,配置path环境变量,引入maven中的bin文件,就能使用了

  • 相关阅读:
    面向对象-对象的内存图
    面向对象-类与对象的关系
    部署Ambari Server实战案例
    面向对象介绍
    基础语法-二维数组的基本使用
    基础语法-无序/有序数组中元素的查找
    常见数据结构与算法-冒泡排序
    常见数据结构与算法-选择排序
    基础语法-数组的常见问题及常见操作
    基础语法-数组的内存分配
  • 原文地址:https://www.cnblogs.com/gengqzh/p/10668626.html
Copyright © 2011-2022 走看看