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模型如来。性奋....

posted @   横渡  阅读(4034)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
点击右上角即可分享
微信分享提示