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就實現了