servlet讲解mvc框架

来源:互联网 发布:陕西易通网络服务公司 编辑:程序博客网 时间:2024/06/03 18:49



先启动tomcat

然后输入登入的填写表单。

<formaction="login.do"method="post">

    姓名:<inputtype="text"name="userName"/>

    密码:<inputtype="password"name="password"/>

    <inputtype="submit"value="提交"/>

    <inputtype="reset" value="重置"/>

  </form>

表单就会根据action=””转到对应的login.do

这个时候就会在web.xml找到要跳转的servlet类进行相应的处理

<servlet>

   <servlet-name>Login</servlet-name>

   <servlet-class>action.Servlet</servlet-class>

 </servlet>

 <servlet-mapping>

   <servlet-name>Login</servlet-name>

   <url-pattern>*.do</url-pattern>

  </servlet-mapping>

在action包下的Servlet类中做相应的处理。

 

来自不同表单中action就会不同,servlet就会根据这个来跳转到相应类中进行逻辑的处理

那就可以截取URL中各个表单对应的action值(localhost:8080/项目名/表单的action值)

 

Servlet的doPost()方法中:

 

String uri=req.getRequestURI();

String uriString=uri.substring(uri.indexOf("/",1),uri.indexOf("."));

 

截取后就可以进行数据的判断。

 

这个时候使用java的面向接口编程

 


public interfaceAction {

    public Stringaction(HttpServletRequest req, HttpServletResponse resp)

    throws ServletException,IOException;

}

public classloginAction implementsAction {

    public Stringaction(HttpServletRequest req, HttpServletResponse resp)

            throws ServletException,IOException {

        // TODO Auto-generated method stub

        Stringname=req.getParameter("username");

        if(name.equalsIgnoreCase("A")){

            return"/success.jsp";

        }

        return null;

    }

}

 

表单的业务逻辑就可以在各个类中去实现。(像上面login表单里面的信息就可以在loginAction中实现)并返回一个页面,实现跳转

 

在servlet的doPost中

 

Actionaction=null;

            if(uriString.equals("/login")){

                action=new loginAction();

            }elseif(){

                其他的实现

}

else{

                throw new RuntimeException("请求失败");

            }

    Stringforword=null;

            try {

                forword=action.action(req,resp);

            }catch(Exception e) {

                // TODO: handle exception

                e.printStackTrace();

            }

    req.getRequestDispatcher(forword).forward(req,resp);

 

 

struts中的配置文件就可以解决Action问题

用一个action-config把所有的action都配置起来

根据路径的不同找到不同的类

<action-config>

         <action path=”/login”type=”com.Servlet”>

                   <forwardname=”success”>/success.jsp</forward>

         </action>

</action-config>

 

 

 

 

 

 

 

0 0