mvc 结构领悟

本文详细介绍了MVC架构在Java Web开发中的应用,包括如何利用JSP作为视图、Servlet作为控制器,以及DAO作为数据访问层的具体实现方式。此外,还讨论了如何配置web.xml文件以实现请求的正确路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 总结:jsp只做显示任务,servlet用来进行业务处理,最后将与数据库交流的功能再dao专攻实现。后续完善struts。

Mvcjavabean(m)+jsp(v)+servlet(c)

 

  将以上三部分分为4个包,beans就是数据,servlet中放jsp中的业务请求,utils中放数据库连接的原子操作,dao中与数据库进行交互的原子操作。(可以理解为,servlet中存放jsp页面的宏观的大的业务操作,如登陆,注册。而dao中存放为了实现登陆的用户数据库验证操作,或注册的用户存储操作)。如下图:

 

注意问题:

1. <servlet>

    <servlet-name>Login</servlet-name>    //servlet别名

    <servlet-class>servlet.Login</servlet-class> 

//servlet编译的.class文件在WEB-INF目录下的classes文件下的目录

  </servlet>

  <servlet-mapping>

    <servlet-name>Login</servlet-name>     //servlet别名

<url-pattern>/Login</url-pattern>      

//servlet访问路径的设置(即action中的路径)

  </servlet-mapping>

2.web.xml中倒着往上找路径,从路径找到java文件(class

<%String path =request.getContextPath(); %>

<form name="form1" method="post"  action="<%=path%>/Login">

<!--path得到相对路径,即服务器下的工程文件名既"/login" -->

<!--action <url-pattern>/Login</url-pattern>中的值,客户端请求从这找起,找到 

<servlet-mapping>

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

    <url-pattern>/Login</url-pattern>

  </servlet-mapping>

 中的<servlet-name>Login</servlet-name>,在从 

  <servlet>

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

    <servlet-class>servlet.Login</servlet-class>

  </servlet>

中的<servlet-name>Login</servlet-name>找到<servlet-class>servlet.Login</servlet-class>中的java-->

3.数据库操作

sql="select * from user where userName='"+username+"' and userPwd='"+passwd+"'";//变量一定用'"+username+"这种模式

4.实现mvc模型步骤:

   A.定义bean来表示数据

   B.使用servlet来处理请求

   C.填写bean

   D.将bean存储到请求(request),会话(session)或servlet上下文(servletContext)中。

   E.将请求转发到jsp页面

   F.从bean中读取数据

5.后续完成注册功能时发现的问题

 两种格式的按钮

<input type="button"name="注册"onclick="window.open('http://www.baidu.com.cn')">      

<input type="submit" name="Submit" value="注册" onclick="check()">

 <script language="javascript" type="text/javascript">
  <!--
  function check(){
        frm = document.form;
        if(frm.userPwd.value!=frm.userPwd1.value){
           alert("密码错误,请重新设置!")
           frm.action="<%=path%>/register.jsp";
        }
       else
             return false;  
     }

  //-->
    </script>

onclick()事件,当在button组件中,成功时需再调用frm.submit();return;这两句。

 在submit组件中,只有当return false后才不会提交。或者不写else。否则执行完onclick()后还会执行submit。不需要写frm.submit();否则会执行两遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值