jsp的运行机制比.net的webform的架构方便多了,只要配置了java sdk和tomcat,在jsp内嵌代码就能运行。这个跟以前的asp有点类似。
后来,为了重用逻辑代码部分,外加内嵌页面java代码太多,不好管理,于是出现了jsp+javabean的两层架构。就是把逻辑代码部分提取出来,放在class里面,然后在jsp页面调用class;calss功能有点类似于webform的后台处理代码,但是本质上是完全不同的;webform的后台代码是可以直接控制aspx页面的服务器控件,而JavaBean是传输数据,或兼并处理数据,然后在jsp显示,jsp+JavaBean模式的两层分工很明确。
定义JavaBean:
package javaweb; public class javabean { private String username; private String password; public void setUsername(String username) { this.username=username; } public void setPassword(String password) { this.password=password; } public String getUsername() { return username; } public String getPassword() { return password; } } 构建login.jsp和welcom.jsp:
login.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <center> <form method=post action="wellcom.jsp"> username<input type=text name=username> <br><br> password<input type=password name=password> <br><br> <input type=submit value="注册"> </form> </center> </html>
welcom.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<jsp:useBean id="hello" class="javaweb.javabean" scope="session" />
<jsp:setProperty name="hello" property="*" />
<%
//hello.username = "myname";
%>
your username is:<%= hello.getUsername() %>
<br><br>
your password is:<jsp:getProperty name="hello" property="password"/>
<br><br>
</html>
jsp + javaBean + servlet (俗称的mvc结构)
之前的JavaBean就是分两层,现在加个servlet就分三层。servlet有点像asp.net mvc框架的路由功能,也就是页面控制台,负责控制页面传值和传输。上面的代码不变,加多一个servlet:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import com.huanlin.UserInfoBean; public class HelloServlet2 extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=GBK"); request.setCharacterEncoding("GBK"); //创建JavaBean的对象 javabean bean = new javabean(); bean.setUserName( request.getParameter("username").toStrng()); HttpSession session = request.getSession(); session.setAttribute("userInfo", userInfo); // 前往指定的网页 response.sendRedirect("welcom.jsp") } }
当然还要设置WEB-INF下面的web.xml设置路由了:
<servlet> <servlet-name> login </servlet-name> <servlet-class> javaweb.javabean </servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/login.do</url-pattern> </servlet-mapping>
然后修改login.jsp 标签form的action=”/login.do”
这样一个简单的mvc就实现了