J2EE
J2EE API包含以下几个部分:
Jsp(java server page)接口:优秀的jsp接口易于维护,不负责业务逻辑的处理(可以交给JavaBean和ejb完成)
JNDI(java naming and directory interface)接口:为访问目录服务提供支持
还有[/size]Java事务接口(jta),数据库连接(jdbc api),远程方法调用(rmi),消息服务接口(jms)
这些API和3层架构的关系如下图:
在myeclipse中建立一个web工程MVCFirst。
模型层
/*
*@(#){file_name} Aug 3, 2010
*
*Copyright 2010 Zhoujunmei.
*/
package javabean;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class User {
private String userName;
private String userAddress;
private String userSex;
private Connection conn;
private static final String SQL = "select username,usersex,useraddress from user where username=?";
public User() { // 构造函数进行jdbc数据库连接
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/login", "root", "root");
} catch (SQLException e) {
e.printStackTrace();
}
}
public void getDBUser(String userName) {
PreparedStatement selectQuery = null;
try {
selectQuery = conn.prepareStatement(SQL);
selectQuery.setString(1, userName);
ResultSet rs = selectQuery.executeQuery();
while (rs.next()) {
this.setUserName(rs.getString("username"));
this.setUserSex(rs.getString("usersex"));
this.setUserAddress(rs.getString("useraddress"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
}
使用的是mysql数据库,需要导入数据库驱动包,mysql中建立一个login数据库,建立user数据表
用户输入界面的jsp代码:Usernameinput.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>username input</title>
</head>
<body bgcolor="#ffffff">
<!-- 我们约定本页面将用户输入提交的action所指定的servlet中去,这里就是视图和控制器交互的所在 -->
<form method="post" action="UserServlet" name="form1">
<br>
Username:
<br>
<input type="text" size="24" name="username" value="">
<p>
<input type="submit" value="提交" name="submit">
<input type="reset" value="重置" name="reset">
</form>
</body>
</html>
返回信息的界面jsp代码:Usernameresult.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>username result</title>
</head>
<body bgcolor="#ffffff">
<!-- 接收控制器层的返回信息,在servlet控制器中的定义3个返回信息会以userName,userSex标识 -->
<h1>username:</h1><%=request.getAttribute("userName") %>
<h2>usersex:</h2><%=request.getAttribute("userSex") %>
<h3>useraddress:</h3><%=request.getAttribute("userAddress") %>
</body>
</html>
控制器代码:
在myeclipse中新建一个servlet,doPost和doGet代码如下:
doPost和doGet根本区别是doGet请求时url会包含传入的参数
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserServlet extends HttpServlet {
/**
* Constructor of the object.
*/
public UserServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// <input type="text" size="24" name="username" value="">
String username = request.getParameter("username"); //取得视图层的表单输入的username
User user = new User();
user.getDBUser(username); //调用 模型层的业务逻辑方法
//将得到的信息放在request的attribute中以userName,。。来标识
request.setAttribute("userName", user.getUserName());
request.setAttribute("userSex", user.getUserSex());
request.setAttribute("userAddress", user.getUserAddress());
String nextpage ="/usernameresult.jsp";
RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher(nextpage);
dispatcher.forward(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
建完servlet后在web.xml会自动配置所见的servlet,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 建立servlet类后自动配置的 -->
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>UserServlet</servlet-name>
<servlet-class>servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
</web-app>
执行结果:
启动Tomcat,在地址栏输入:
http://localhost:8080/MVCFirst/usernameinput.jsp,输入数据库中已有的用户名,就会跳转到usernameresult.jsp页面
- 大小: 13.3 KB
分享到:
相关推荐
在这个名为"MyFirstPureMvc"的压缩包中,你将找到一个使用PureMvc开发的Adobe AIR项目的完整实例,这将帮助初学者理解如何在实际项目中应用PureMvc。 首先,让我们深入了解一下PureMvc的MVC架构: 1. **模型...
8. **WebApplication01-第一套**:这可能是项目的主要入口点或源代码文件夹。在这个文件夹中,你可能会找到解决方案文件(.sln),项目文件(.csproj),以及控制器、模型、视图和其他支持文件,如配置文件、样式表...
"MVC3Demo实例"是一个适合初学者的ASP.NET MVC3项目,它展示了如何利用MVC模式和三层架构构建一个包含增删改查功能的小型Web应用。通过学习这个实例,开发者可以了解MVC3的关键概念,如模型、视图和控制器的职责,...
标题中的“一个很好的puremvc实例”表明我们即将探讨的是关于PureMVC框架的实际应用案例。PureMVC是一个轻量级的、跨平台的MVC(Model-View-Controller)设计模式实现,它主要应用于创建复杂但组织良好的应用程序...
6. ** Areas**:ASP.NET MVC4引入了区域(Areas)的概念,允许在一个大型项目中组织多个相互独立的功能模块,每个区域都有自己的控制器、视图和模型,类似于小型的MVC应用程序。 7. **AJAX支持**:ASP.NET MVC4内置...
**第二章 Spring MVC 增改查实例** Spring MVC 是 Spring 框架的一个模块,专为构建基于 Web 的应用程序而设计。它提供了一个灵活的架构,用于处理 HTTP 请求、模型视图之间的交互以及与后端数据库的数据操作。在本...
*** MVC音乐商店实例项目是一个以音乐商店为主题的在线商城应用,通过创建此项目,用户可以了解如何使用*** MVC3、Razor视图引擎和Entity Framework Code First方法来构建一个完整的Web应用程序。 在创建项目的过程...
在本文中,我们将深入探讨如何实现一个完整的Spring MVC CRUD(创建、读取、更新、删除)操作实例。首先,我们需要了解Spring MVC的基本组件和它们的角色。 1. **模型(Model)**: 模型是应用程序的核心,包含了...
"codesc.net"这个名字可能是指一个基于Delphi的MVC框架或项目,它可能是一个网络应用开发框架,用于构建服务器端的应用程序。在这个框架中,开发者可以利用MVC模式将业务逻辑、数据处理和用户界面分离,提高代码的可...
ASP.NET MVC3与IBATIS.NET的结合使用是开发高效、灵活的...同时,这也是迈向更复杂、更高效的数据处理解决方案的第一步。在深入学习的过程中,你还可以探索如事务管理、存储过程的使用以及复杂的查询等更多高级特性。
如果你的数据库已经配置好, 就将第一个注释去掉. jdbc.properties: 1 jdbc.driverClassName=com.mysql.jdbc.Driver 2 jdbc.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8 3 jdbc....
**MVC Contrib** 是一个针对ASP.NET MVC框架的开源扩展库,它提供了许多额外的功能和工具,以增强ASP.NET MVC的开发体验。这个压缩包包含了MVC Contrib项目的实例源码和相关组件,对于理解MVC Contrib的工作原理以及...
在本实例中,"spring4MVC+Hibernate4实例(增删改查)"是一个基于Maven构建的Java Web项目,旨在演示如何整合Spring MVC和Hibernate框架来实现数据的CRUD(创建、读取、更新和删除)操作。Spring MVC是Spring框架的...
1. **创建第一个MVC项目**:如何使用Visual Studio创建新的MVC项目,配置路由规则。 2. **控制器和动作**:理解控制器类和动作方法,以及如何处理HTTP请求。 3. **视图和Razor语法**:学习Razor视图引擎,创建和渲染...
Mvc3是Microsoft的Model-View-Controller设计模式的第三个版本,是一个用于构建动态网站的开源框架。它提供了更好的代码组织和测试能力,使得开发过程更为灵活和高效。在Mvc3中整合SwfUpload,可以利用其异步上传的...
2. **创建Hello World应用程序**:引导读者完成第一个简单的Spring MVC应用。 3. **表单处理**:讲解如何在Spring MVC中处理用户输入的表单数据。 4. **Tiles支持与Eclipse插件教程**:介绍使用Tiles布局系统和...
- MVC3是ASP.NET MVC框架的第三个主要版本,引入了许多改进和新特性,如Razor视图引擎,增强了对JavaScript库如jQuery的支持,以及更强大的模型绑定和验证机制。 2. **模型(Model)** - 在MVC3中,模型负责业务...
“mvc2 实例 通讯录管理”表明这是一个使用ASP.NET MVC2框架开发的实例项目,主要用于实现一个通讯录的管理系统。MVC(Model-View-Controller)是一种设计模式,常用于Web应用开发,将业务逻辑、数据模型和用户界面...
标题中的“EF4+MVC6+AutofacIOC实例”代表了一个集成开发项目,它结合了Entity Framework 4(数据库访问技术),ASP.NET MVC 6(Web应用程序框架)和Autofac(依赖注入容器)。这是一个针对初学者的示例框架,旨在...