java框架学习

学的时候不记得记录,考完试了回来能想到多少是多少把。。。。

代码不能直接复制运行,要增删改一些东西,为了方便记忆,整合,将好几个同类项目的知识点放在了一起

目录

Servlet

web.xml

Servlet有哪些接口

Servlet 的生命周期

最简单显示姓名

struts

mybatis

hibernate

springmvc

简易

复杂

解释ORM思想的主要内容

解释IOC思想的主要内容

解释AOP思想的主要内容

Java中POJO类的主要特点

给出5个组件模型

组件接口有哪些不兼容类型?如何解决?

CBSE的设计原则

描述mybatis的运行机制

描述hibernate的运行机制

描述Struts2的运行机制

描述servlet的运行机制

描述springMVC的运行机制


Servlet

web.xml

使用servlet技术。在Web项目的 web.xml中创建一个servlet,并指定使用该servlet的url模式;

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
     <!-- 类名 -->
    <servlet-name>Student</servlet-name>
    <!-- 所在的包 -->
    <servlet-class>com.mucfc.chapter0.Student</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Student</servlet-name>
    <!-- 访问的网址 -->
    <url-pattern>/servlet/Student</url-pattern>
    </servlet-mapping>
</web-app>

Servlet有哪些接口

Javax.servlet包

      Servletconfig,servletcontent,requestdispatcher,servletrequest,servletresponse,servlet接口

      Genericservlet类

Javax.servlet.http包

      Httpservletresponse,httpservletrequest接口

      Httpservlet类

Servlet 的生命周期

1加载和实例化 当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。

2初始化:执行init方法,只执行一次

实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。

3提供服务:初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。

4被销毁:当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。

最简单显示姓名

创建dynamic web project项目

配置web.xml文件

创建一个servlet,类名为Student.java

重写doGet方法

package com.mucfc.chapter0;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Student")
public class Student extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Student() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {	
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("HelloStudent I am Servlet");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
	

}

通过get方法获取姓名

// TODO Auto-generated method stub
		String clientName=request.getParameter("clientName");
		if(clientName!=null)
		       //字符编码转换
		   		clientName=new String(clientName.getBytes("ISO-8859-1"),"GB2312");
		else
		   		clientName="我的朋友";

		String title="HelloServlet";

		//设置响应正文的类型
		response.setContentType("text/html");

		//生成HTML正文
		PrintWriter out = response.getWriter();
		out.print("<HTML><HEAD><TITLE>"+title+"</TITLE>");
		out.print("</HEAD><BODY>");
		out.println("<h1><P> "+clientName+" : 您好</h1>");
		out.print("</BODY></HTML>");

		//关闭输出流
		out.close();

运行http://localhost:8080/ServletLeaningChapter0/servlet/HelloWorld

struts

jar包

使用Struts2技术,在网页中显示你的姓名

配置过滤器

配置Struts的过滤器之后,Struts才会对用户请求做出响应

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>StructsFight</display-name>
  <welcome-file-list>
  	<welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>  
        <filter-name>struts2</filter-name>  
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>   
    </filter>  
    <filter-mapping>  
        <filter-name>struts2</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
    <absolute-ordering />
</web-app>
  1. 使用Struts2技术。在Struts配置文件Struts.xml中,定义一个action,实现如果返回结果是success,则加载success.jsp;否则加载loginFail.jsp。
  2. 使用Struts2技术。创建一个与action对应的类UserAction.java。类有两个属性username和password。实现功能:如果username=password,返回SUCCESS,否则返回FAIL。

创建dynamic web project项目

修改配置文件web.xml,配置struts过滤器

创建struts.xml,配置action

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd" >
<struts>
<package name="show"  extends="struts-default">
        <action name="show" class="com.action.UserAction" method="execute">
            <result name="success">success.jsp</result>
            <result name=”fail”>loginFail.jsp</result>
        </action>
    </package>

</struts>

 

创建action对应的java类,配置属性和方法

package com.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
	HttpServletRequest request=ServletActionContext.getRequest();
	 String username=request.getParameter("username");
	 String password=request.getParameter("password");
	public String getUsername() {
			return username;
		}
		public void setUsername(String username) {
			this.username = username;
	}
		public String getPassword() {
			return password;
		}
	public void setPassword(String password) {
		this.password = password;
	}
	 public String execute() throws Exception{
		 String strReturn;
		  if(this.username.equals(this.password)){
			  
			  strReturn="success";
		  }else{
			  
			  strReturn="fail";
		  }
		  return strReturn;
	  }		

}

 

创建jsp文件

Login.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>
 <center>
    ${tip}
    <form action="show.action" method="post">
      <table>
        <tr>
          <td>请输入学号:</td>
          <td><input type="text" name="username"/></td>
        </tr>
        <tr>
          <td>请输入姓名:</td>
          <td><input type="text" name="password"/></td>
        </tr>
        <tr>
         <td colspan="2"><input type="submit" value="登录"/></td>
        </tr>
      </table>
    </form>
 </center>
</body>
</html>

Show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.action.UserAction"%>
<!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>
  学号:<%UserAction act=new UserAction();%>
  <%=act.getUsername() %><%; %>
   姓名: <%=act.getPassword() %><%; %>
</body>
</html>

运行

mybatis

创建maven项目,当初就因为建错项目搞了好久好久,代码一点问题都没有,就是不能运行

使用mybatis技术。数据库有表user(userid intger,name varchar2(22))。创建表user对应的

package mb.mb.pojo;

public class Emp {
    private int id;
    private String first_name;
    private int salary;
   
    @Override
    public String toString() {
        return "emp{" +
                "id='" + id + '\'' +
             
                ", first_name='" + first_name + '\'' +
              
            ", salary='" + salary + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }
}
  1. 使用mybatis技术。数据库有表user(userid intger,name varchar2(22))。在user对应的映射文件中,并编写按userid查询用户的功能,和插入一条记录的功能。

Usermapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mb.mb.dao.EmpMapper">
   
   <select id="selectEmp" resultType="mb.mb.pojo.Emp">
      select * from emp where salary > #{salary}
   </select>
   <insert id=”insertuser” keyproperty=”userid” usegeneratedkeys=”true”>

              Insert into users values(#{userid},#{username})
   </insert>
</mapper>

 

  1. 使用mybatis技术。创建一个测试程序,从数据库的user表中查询一条记录。

表user对应的POJO类USER和映射文件userMapper已存在。映射文件中已编写:

Test.java

package mb.mb.test;

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 mb.mb.dao.EmpMapper;
import mb.mb.pojo.Emp;

import java.io.InputStream;
import java.util.List;

public class mybatisTest {
   public static void main(String[] args) throws Exception {
      // 指定全局配置文件
      String resource = "mybatis-config.xml";
      // 读取配置文件
      InputStream inputStream = Resources.getResourceAsStream(resource);
      // 构建sqlSessionFactory
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      // 获取sqlSession
      SqlSession sqlSession = sqlSessionFactory.openSession();
      try {
    	  EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
           System.out.println(empMapper.getClass());
          empMapper.Insertuser(“”);
          sqlSession.commit();
           // 返回值为List
           List<Emp> list = empMapper.selectEmp(5000);
           for (Emp emp : list) {
               System.out.println(emp);
           }

      } finally {
         sqlSession.close();
      }
   }
}

 

  1. 使用mybatis技术。数据库有表user(userid intger,name varchar2(22))。创建user表对应JAVA类、映射文件和配置文件

Userdao.java

package mb.mb.dao;

import java.util.List;

import mb.mb.pojo.Emp;

public interface EmpMapper {
	public List<Emp> selectEmp(Integer i);
    Public void insertuser(int userid,String name);
}

 

  1. 使用mybatis技术。数据库有表user(userid intger,name varchar2(22))。表user对应的映射文件、java类和配置文件已完成。创建一个测试程序,完成对表插入一条记录。

创建maven project

配置pom.xml

配置mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/my_student" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    
     <mappers>
        <mapper resource="mb/mb/mapper/empMapper.xml"/>
    </mappers>
</configuration>

创建实体类文件

创建实体类对应的映射文件

创建映射器类文件

创建test文件

hibernate

https://www.cnblogs.com/mq0036/p/8522150.html

  1. 使用hibernate技术。数据库有表user(userid intger,name varchar2(22))。创建user表对应的类、映射文件和配置文件

Hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory >
  <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
  <property name="hibernate.connection.password">root</property>
  <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/my_student</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <mapping resource="com/entity/Emp.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

Hibernate.reveng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.org/dtd/hibernate-reverse-engineering-3.0.dtd" >

<hibernate-reverse-engineering>
  <table-filter match-catalog="my_student" match-name="Emp"/>
</hibernate-reverse-engineering>
  1. 使用hibernate技术。数据库有表user(userid intger,name varchar2(22))。表user对应的映射文件、java类和配置文件已完成。创建一个测试程序,完成对表插入一条记录。

User.hbm.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generated by Hibernate Tools 5.2.12.Final -->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
    <class catalog="my_student" name="com.entity.Emp"  table="emp">
        <id name="id" type="java.lang.Integer">
            <column name="id"/>
            <generator class="identity"/>
        </id>
        <property  name="firstName"  type="string" >
            <column length="22" name="first_name"/>
        </property>
        <property name="salary"  type="java.lang.Integer">
            <column name="salary"/>
        </property>
    </class>
</hibernate-mapping>
  1. 使用hibernate技术。数据库有表user(userid intger,name varchar2(22))。表user对应的映射文件、java类和配置文件已完成。创建一个测试程序,从表中查询一条记录,插入、删除、修改一个记录,

创建maven project

配置hibernate.cfg.xml

配置hibernate.reveng.xml

创建实体类

创建实体类对应的映射

创建test文件

package com.entity;

import java.util.Iterator;
import java.util.List;

import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		  //1. SessionFectory
		 
        SessionFactory sessionFactory = null;
 
        Configuration configuration = new Configuration().configure();
 
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
            .applySettings(configuration.getProperties())
            .buildServiceRegistry();
 
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);
 
        //2. Session
 
        Session session = sessionFactory.openSession();
 
 
        Transaction transaction = session.beginTransaction();
//  Configuration cfg = new Configuration();  
//        cfg.configure();  
//          
//        @SuppressWarnings("deprecation")  
//        SessionFactory sf = cfg.buildSessionFactory();  
//          
//        Session s = sf.openSession();  
//          
//        Transaction tx = s.beginTransaction();  
//        Emp emp = new Emp();  
//        emp.setId(1007);
//        emp.setFirstName("tom");  
//        emp.setSalary(2000);  
//          
//        session.save(emp); 
// 
//
// 

//    User user=new User();

//    User.setUserid(“”);

//    User.setusername(“”);

//    ss.save(user);

//    User user=ss.get(user.class,1);

//    User.setname(“”);

//    ss.update(user);
//    User user=ss.get(user.class,1);

//    ss.delete(user);

//    Ts.commit();


        Query query = session.createQuery("from Emp where salary > ? ");
       
        query.setParameter(0, 5000);
      
        List<Emp> list = query.list();
        
        Iterator its=list.iterator();  
        while(its.hasNext()){  
         Emp user=(Emp)its.next();  
         System.out.println(user.getId()+" "+user.getFirstName()+" "+user.getSalary());  
        }  
      transaction.commit();
        session.close();
 
 
        sessionFactory.close();
	}

}

springmvc

简易

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>springMVC1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  <servlet-name>springMVC</servlet-name>
  <!-- 请求触发器 -->
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:springMVC-servlet.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup><!-- 提前启动 -->
  </servlet>
  
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
    <!-- 或*.action -->
  </servlet-mapping>
  
  <!-- 解决springMVC的post乱码 -->
  <filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
  
</web-app>

springMVC-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
       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
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context.xsd">
        
       <!--  配置controller层路径扫描  com.qfedu.springmvc.controller  -->
       <context:component-scan base-package="com.qfedu.springmvc.controller"></context:component-scan>
       
       
       <!-- 视图解析器 -->
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
       </bean>
</beans>

cotroller类

package com.qfedu.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloWorld {
	//在tomcat输入的地址
	@RequestMapping("/hello")
	public String helloworld() {
		System.out.println("hello world");
		//根据返回的视图名字找到相应的jsp页面进行跳转
		return "hello";
	}
}

hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>我的第一个springMVC哦!</h1>
</body>

运行

复杂

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springaaaa</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
 <!--  在web.xml中配置SpringMVC的前端控制器 -->
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!--指定SpringMVC的配置文件-->
  	<!--SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml-->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  		
  	</init-param>
  	
  </servlet>


  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<!--设置所有以*.action结尾的请求进入SpringMVC-->
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>

controller类StudentController.java

package com.qfedu.springmvc.controller;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.qfedu.springmvc.pojo.Student;
@Controller
public class StudentController {
	@RequestMapping("itemList")
	public ModelAndView itemList() {
		ModelAndView mav=new  ModelAndView();
		List<Student> itemList=new ArrayList<Student>();
		itemList.add(new Student(1001, "你好"));
		//设置视图名称
		mav.setViewName("WEB-INF/jsp/itemList.jsp");
		//设置商品数据
		mav.addObject("itemList",itemList);
		return mav;
	}
}

Student.java

package com.qfedu.springmvc.pojo;

public class Student {
	
	    private String  name;
	    private Integer id;
	   
	    public Student(int id, String name) {
	    	this.id=id;
	    	this.name=name;
			// TODO Auto-generated constructor stub
		}
		public String getName() {
	        return name;
	    }
	    public void setName(String name) {
	        this.name = name;
	    }
	    public Integer getId() {
	        return id;
	    }
	    public void setId(Integer id) {
	        this.id = id;
	    }
}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!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> 
<form action="${pageContext.request.contextPath }/queryItem.action" method="post">
查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
</table>
学生列表:
<table width="100%" border=1>
<tr>
	<td>学生学号</td>
	<td>学生姓名</td>
</tr>
<c:forEach items="${itemList }" var="item">
<tr>
	<td>${item.id }</td>
	<td>${item.name }</td>
	<td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td>
</tr>
</c:forEach>

</table>
</form>
</body>

</html>

还没做完,跟着这位博主做的

https://blog.csdn.net/qq_43674132/article/details/90348948#SpringMVC_2springmvc_4

解释ORM思想的主要内容

对象关系映射。将关系数据库中表记录映射到对象中,以对象形式展现。程序员把对数据库的操作转为对对象的操作。

解释IOC思想的主要内容

控制反转。将设计好的对象交给容器控制而不是直接在对象内部操作。

我们通过IOC将这些相互依赖对象的创建、协调工作交给spring容器去处理,每个对象只需要关注其自身的业务逻辑关系就可以了。在这样的角度上来看,获得依赖的对象的方式,进行了反转,变成了由spring容器控制对象如何获取外部资源

解释AOP思想的主要内容

面向切面编程。在一系列纵向控制流程中,将相同子流程提取为一个横向的面。

aop就是用来封装与业务逻辑无关的代码隐式调用,从而使得业务逻辑能重用。

 核心思想:是将业务逻辑中与类不相关的通用功能切面式的提取分离出来,让多个类共享一个行为,一旦这个行为发生改变,不必修改类,而只需要修改这个行为即可。

Java中POJO类的主要特点

实体类,无业务逻辑,属性,setget方法

给出5个组件模型

Javabeans组件模型,.NET模型,corba模型,com+模型,EJB模型

组件接口有哪些不兼容类型?如何解决?

操作不兼容,操作不完善,参数不兼容

 编写适配器组件,使可复用组件接口一致

CBSE的设计原则

基于组件的软件工程

设计原则

组件式独立,彼此互不影响

组件细节实现隐藏

组件平台共享,减少开发成本

组件通过良好定义接口实现交互

描述mybatis的运行机制

读取Mybatis-config.xml配置文件,根据配置文件中的属性组装configuration对象

Sqlsessionfactorybuilder生成sqlsessionfactory

生成sqlsession

Sql语句

描述hibernate的运行机制

读取并解析配置文件,

读取并解析映射文件,创建sessionfactory

打开session

创建事务

持久性操作

提交事务

描述Struts2的运行机制

客户端发出http请求

根据web.xml配置,被filterdispatcher接受

根据struts.xml文件,找到需要调用的action属性和操作

根据action业务逻辑,找到对应的返回结果

跳转到结果对应页面,返回响应给客户端

描述servlet的运行机制

第一次调用,服务器自动创建一个servlet实例并运行

被实例化,启动一个新线程运行

①客户端向服务器端发出请求;

②这个过程比较重要,这时Tomcat会创建两个对象:HttpServletResponse和HttpServletRequest。并将它们的引用(注意是引用)传给刚分配的线程;

③线程开始着手接洽servlet;

④servlet根据传来的是GET和POST,分别调用doGet()和doPost()方法进行处理;

⑤和⑥servlet将处理后的结果通过线程传回Tomcat,并在之后将这个线程销毁或者送还线程池;

⑦Tomcat将处理后的结果变成一个HTTP响应发送回客户端,这样,客户端就可以接受到处理后的结果了。

描述springMVC的运行机制

用户请求到前端控制器dispatcherservlet

dispatcherservlet调用处理映射器handlermapping

handlermapping根据请求调用具体处理 器,生成处理器执行链handlerexecutionchain,返回dispatcherservlet

dispatcherservlet根据Handler获取适配器handleradapter

handleradapter调用handler

handleradapter返回modelandview给dispatcherservlet

handler返回modelandview给dispatcherservlet

dispatcherservlet将收到的给Viewresolver视图解析器解析

Viewresolver返回view

渲染view

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值