JSP MVC


Java的MVC玩起來比.Net的有意思,因為每一步你都知道它是如何運作的,都由自己去實現。而在.Net的MVC中,你卻不知道一個Controller是如何對應到View中的,因為MS給了你IDE上的操作方便,具體內部是如何做的映射,很難找到或不知道。

Java MVC的原理可有這樣理解(網上說是這種):JSP -> Servlet -> JSP

(個人認為最合適的是這樣解釋比較好):Servlet -> JSP

即不需要讓用戶直接訪問JSP。因為這是Resful風格哈。

上代碼例子。

 

建一個Bean: User

package com.my.beans;

import java.lang.*;

public class User {
    private String name;
    private String password;
    private int age;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public User() {}
}

 

建一個JSP:mvctest.jsp

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>

<html>
    <header>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </header>
    <body>
        <form action="${pageContext.request.contextPath}/requestattr" method="POST">
            User name: <input type="textbox" id="txtUserName" name="txtUserName" value="${param.txtUserName}" />
            <input type="submit" value="Submit" /><br/>
            <hr />
            User name textbox value: ${param.txtUserName}<br/>
            Bean user name value: ${userBean.name}<br/>
            Bean password value: ${userBean.password}<br/>
            Bean age value: ${userBean.age}<br/>
        </form>
    </body>
</html>

 

建一個Servlet: RequestAttr

package com.my;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import com.my.beans.User;

public class RequestAttr extends HttpServlet {
    public RequestAttr() {}
    
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.getRequestDispatcher("/pages/mvctest.jsp").forward(req, resp);
    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        PrintWriter out = resp.getWriter();
        
        String strUserName = req.getParameter("txtUserName");
        
        User user = new User();
        user.setName(strUserName);
        user.setPassword("123");
        user.setAge(18);
        
        req.setAttribute("userBean", user);
        req.getRequestDispatcher("/pages/mvctest.jsp").forward(req, resp);
    }
}

 

web.xml修改:

    <servlet>
      <servlet-name>requestattr</servlet-name>
      <servlet-class>com.my.RequestAttr</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>requestattr</servlet-name>
        <url-pattern>/requestattr</url-pattern>
    </servlet-mapping>

 

結果:

訪問地址:http://localhost:8080/mytest/requestattr

一個MVC模型如來。性奮....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM