以前的一些内容,写在机器上。呵呵。现在都帖上来吧。

第一:讲XML里面所有提交的servlet 改成 *.do 提交到 ActionServlet
然后在action里面 截取最后的 值
String uri = arg0.getRequestURI();得到uri
然后截取最后的’/’和’.’得到 UserADD
然后使用
String name = uri.substring(‘/+1’,’.’);
然后使用class.forname().newInstance();来得到新的实列
然后将Action定义一个接口让所有的增删查改都实现action类
实现方法。返回一个String类型 的返回值
String forward = “error.jsp”
 
Action action = (Acction)Class.forName(clzName).newInstance();
Forward = action.process(arg0,arg1);
转向
requestDispatcher rs = arg0.getrequestDispathcer(forward);
rs.forward(arg0,arg1);
 
写一个配置文件 将 里面的 key=value 包名和类名写进去
然后用properties 属性文件  然后使用 enumeration 枚举便利
 
 
String path = this.getServletContext().getRealPath("/");
得到路劲
 
C请求
Servlet1
 
 
Servlet2
 
 
Servlet3
 
V
*.jsp
数据库
M
Dao
Dto
 
MVC 1.0
 
 
 
 
 因为这里是我画的图这不好显示。。就。。。。。算了
 
 
 
 
 
 
 
 
 
 
 
 这里是word画的图~~~~没能正常显示
 
 
C请求
Servlet1
 
*.do
V
*.jsp
数据库
M
Dao
Dto
 
Action 1 list     action2 add    ……….
 


MVC2.0
 
 
 这里是word画的图~~~~没能正常显示 
 
 
 
 
 
 
 
 
 
 
 
 
 
MVC1.0 – MVC2.0
1.         在web.xml中只留一组servlet 将所有对servlet的请求转向一个servlet actionservet
2.         在actionservet.java中 用 substring() 截取 ~.do  将 .也取  列 ~~~/booklis.do,截取”/”和”.” 然后使用substring(“/+1”,”.”)获得
3.         实现新的action 接口 和对象 使用
Action action = (Acction)Class.forName(clzName).newInstance();
4.         然后使用得到return返回的字符串转向
5.         创建相应的类的是实列实现action类~~具体看代码~~
6.         启动服务器时。因为还没有request和session则需要获得当前目录,应该怎么获得呢。这里使用String path = this.getservletContext().getrealPath(“/”);
7.         InputStream in = new FileinputStream(path+”web-inf/+文件夹*.properties”);得到配置文件的key与value放在hashmap中
 
 
Web.xml中应该 如下配置
       <servlet>
       <init-param>
       <param-name>DriverName</param-name>
       <param-value>oracle.jdbc.driver.OracleDriver</param-value>
       </init-param>
 
       <init-param>
       <param-name>URL</param-name>
       <param-value>jdbc:oracle:thin:@localhost:1521:orcl</param-value>
       </init-param>
 
       <init-param>
       <param-name>User</param-name>
       <param-value>LIUBOWEN</param-value>
       </init-param>
 
       <init-param>
       <param-name>Password</param-name>
       <param-value>liubowen</param-value>
       </init-param>
       <servlet-name>ActionServlet</servlet-name>
       <servlet-class>
           com.softeem.mvc.action.ActionServlet
       </servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
   
    <servlet-mapping>
       <servlet-name>ActionServlet</servlet-name>
       <url-pattern>*.do</url-pattern>
 
 
代码具体如下给大家<简单的使用hasmap实现。还等升级使用配置文件>接口等代码自己写了。
有问题~继续
package com.softeem.action;
 
import java.io.IOException;
import java.util.HashMap;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.softeem.config.ConfigSource;
 
public class ActionServlet extends HttpServlet {
 
    protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
           throws ServletException, IOException {
       // TODO Auto-generated method stub
       doGetdoPost(arg0, arg1);
    }
 
    @Override
    protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1)
           throws ServletException, IOException {
       doGetdoPost(arg0, arg1);
    }
 
    protected void doGetdoPost(HttpServletRequest arg0, HttpServletResponse arg1)
           throws ServletException, IOException {
       String uri = arg0.getRequestURI();//截取浏览器路径
       int post = uri.lastIndexOf("/");
       int last = uri.lastIndexOf(".");
       String name = uri.substring(post + 1, last);
       String clek = (String) ConfigSource.getmap().get(name);
       String fowad = "login.jsp";
       if (clek == null) {
           clek = "com.softeem.implen.action.Erroraction";
       }
       try {
           Action action = (Action) Class.forName(clek).newInstance();
           fowad = action.doPostdoGet(arg0, arg1);
           RequestDispatcher rs = arg0.getRequestDispatcher(fowad);
           rs.forward(arg0, arg1);
       } catch (InstantiationException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IllegalAccessException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (ClassNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
    }
    public void init() throws ServletException {
       ConfigSource.init(this);
    } 

 

 

标签:java软件工程师培训  软件编程培训  如何学习java  广州java培训  java精品课程  软件工程课程