前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java EE实用教程笔记----(1)第1章 Java EE平台及开发入门

Java EE实用教程笔记----(1)第1章 Java EE平台及开发入门

作者头像
浩Coding
发布2019-07-03 16:55:58
1.8K0
发布2019-07-03 16:55:58
举报
文章被收录于专栏:浩Coding浩Coding

最近从图书馆借了本JavaEE实用教程(第3版),打算学习SSH和SSM框架,特此做笔记,以飨读者.

《JavaEE实用教程(第3版)》是2018年电子工业出版社出版的图书,作者是郑阿奇。

本书包含实用教程、实验指导和综合应用实习三部分。实用教程部分包括Java EE平台及开发入门、Struts 2基础、Struts 2标签库、Struts 2类型转换及输入校验、Struts 2应用进阶、Struts 2综合应用案例、Hibernate基础、Hibernate映射机制、Hibernate对持久化对象的操作、Hibernate高级特性、Hibernate与Struts 2整合应用案例、MyBatis基础、Spring基础、Spring MVC基础、Spring的其他功能、用Spring整合各种Java EE框架等。在每一章后配套相应的习题。与实用教程配套的实验有13个,先引导操作完成任务,然后是思考与练习。最后配套综合应用实习,介绍学生成绩管理系统的开发。--华信教育资源网。

一:Java EE的开发方式

1.Java Web开发

这是传统的方式,其核心技术是JSP、Servlet与JavaBean。

2.Java框架开发

(1)轻量级Java EE

例如SSH2(Struts/Struts 2、Hibernate、Spring,传统企业框架)SSM(Spring MVC、Spring、MyBatis,多应用于对并发性能要求很高的互联网项目)开发出的应用通常运行在普通Web服务器(如Tomcat)上。

(2)经典企业级Java EE

以EJB 3+JPA为核心,系统需要运行于专业的Java EE服务器(如WebLogic、WebSphere)之上,通常只有开发商用的大型企业项目才会用到。

简而言之,我们现在学习的就是轻量级框架--SSH以及SSM.

开发模型图

一个简单的Java EE程序

这篇文章实在太短了,附上一个简单的传统JSP、Servlet与JavaBean开发的JavaEE项目,以后的教程就以这个为主:

1.程序的结构

在网站规模不大、功能简单时,Java EE用传统的Java Web方式开发:用JSP制作前端页面;编写Servlet实现程序业务逻辑处理和流程控制;JavaBean将表封装成对象,提供对数据的面向对象访问;JDBC直接操作后台数据库。程序结构如图所示:

2.实例:“图书管理系统”登录功能

【实例1.1】采用JSP+Servlet+JavaBean+JDBC方式开发一个Web登录程序。

(1)建立数据库与表。

在SQL Server 2008/2012中创建图书管理数据库,命名为MBOOK,其中建立一个登录信息表login,表结构见附录A.1。表建好后,向其中录入两条数据记录。最后建好的数据库、表及其中数据在SQL Server 2008/2012的SQL Server Management Studio中显示的效果,如图所示:

(3)创建Java EE项目。

在MyEclipse 2014中,选择主菜单“File”→“New”→“Web Project”,出现如图1.27所示的“New Web Project”窗口,填写“Project Name”栏(项目名)为“bookManage”:

(4)创建JDBC类。

由于登录时要对数据库进行查询,从图1.23可知,直接访问数据库的是JDBC,故要创建JDBC类。创建之前先建一个包用于存放JDBC类,右击项目src文件夹,选择菜单“New”→“Package”,在“New Java Package”窗口输入包名“org.db”,如图1.30所示,单击“Finish”按钮。

右击src,选择菜单“New”→“Class”,出现如图1.31所示的“New Java Class”对话框。

单击“Package”栏后的“Browse…”按钮,指定类存放的包为“org.db”,输入类名“DBConn”,单击“Finish”按钮。

编写DBConn.java,代码为:

package org.db;

import java.sql.*;

public class DBConn{

public static Connection conn; //Connection对象(连接)

private static String url = "jdbc:mysql://localhost:3306/mbook?useUnicode=true&characterEncoding=utf-8";

private static String user = "ssh";

private static String password = "ssh";

//获取数据库连接

public static Connection getConn(){

try {

Class.forName("com.mysql.jdbc.Driver");

/**编写连接字符串,创建并获取连接*/

conn = DriverManager.getConnection(url, user, password);

return conn;

}catch(Exception e){

e.printStackTrace();

return null;

}

}

//关闭连接

public static void CloseConn(){

try{

conn.close(); //关闭连接

}catch(Exception e){

e.printStackTrace();

}

}

}

(5)添加JDBC驱动包。

JDBC类编写完成后,还需要将JDBC驱动包sqljdbc4.jar复制到项目的“\WebRoot\WEB-INF\lib”目录下,在项目工程目录视图中刷新(右键菜单→“Refresh”)即可。

(6)编写JSP。

本例要写3个JSP文件:login.jsp(登录页)、main.jsp(欢迎主页)和error.jsp(出错处理页)。在项目工程目录树中,右击WebRoot项,从弹出的菜单中选择“New”→“File”,在如图1.32所示的窗口中输入文件名login.jsp,单击“Finish”按钮。

在代码编辑器中编写login.jsp(登录页)文件,代码为:

<%@ page language="java" pageEncoding="gb2312"%>

<html>

<head>

<title>图书管理系统</title>

</head>

<body bgcolor="#71CABF">

<form action="loginServlet" method="post">

<table>

<caption>用户登录</caption>

<tr>

<td>登录名</td>

<td><input name="name" type="text" size="20"/></td>

</tr>

<tr>

<td>密码</td>

<td><input name="password" type="password" size="21"/></td>

</tr>

</table>

<input type="submit" value="登录"/>

<input type="reset" value="重置"/>

</form>

</body>

</html>

接下来,用同样的方法在项目WebRoot目录下再创建两个JSP文件:main.jsp和error.jsp。

欢迎主页main.jsp,代码如下:

<%@ page language="java" pageEncoding="gb2312" import="org.model.Login"%>

<html>

<head>

<title>欢迎使用</title>

</head>

<body>

<%

Login login=(Login)session.getAttribute("login"); //从会话中取出 Login 对象

String lgn=login.getName(); //通过 JavaBean 对象获取用户名

%>

<%=lgn%>,您好!欢迎使用图书管理系统。

</body>

出错处理页error.jsp,代码如下:

<%@ page language="java" pageEncoding="gb2312"%>

<html>

<head>

<title>出错</title>

</head>

<body>

登录失败!单击<a href="login.jsp">这里</a>返回

</body>

</html>

(7)编写Servlet。

在项目src下建立包org.servlet,在包中创建名为LoginServlet的类(Servlet类)。

编写LoginServlet.java,代码为。

package org.servlet;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.model.*;

import org.dao.*;

@WebServlet("/loginServlet")

public class LoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public LoginServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("gb2312"); //设置请求编码

//该类为项目与数据的接口(DAO接口),用于处理数据与数据库表的一些操作

LoginDao loginDao = new LoginDao();

Login l = loginDao.checkLogin(request.getParameter("name"), request.getParameter("password"));

if(l!=null){ //如果登录成功

HttpSession session = request.getSession(); //获得会话,用来保存当前登录用户的信息

session.setAttribute("login", l); //把获取的对象保存在 Session 中

response.sendRedirect("main.jsp"); //验证成功跳转到欢迎主页 main.jsp

}else{

response.sendRedirect("error.jsp"); //验证失败跳转到错误处理页 error.jsp

}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

8)配置Servlet。

Servlet编写完成后,必须在项目web.xml中进行配置方可使用。

修改项目web.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

<servlet>

<servlet-name>loginServlet</servlet-name>

<servlet-class>org.servlet.LoginServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>loginServlet</servlet-name>

<url-pattern>/loginServlet</url-pattern>

</servlet-mapping>

<display-name>bookManage</display-name>

<welcome-file-list>

<welcome-file>login.jsp</welcome-file>

</welcome-file-list>

</web-app>

(9)构造JavaBean。

在项目src下建立包org.model,其中创建名为Login的Java类,为数据库login表构造一个JavaBean--Login.java代码为:

package org.model;

public class Login {

//属性

private Integer id; //用户ID

private String name; //用户名

private String password; //密码

private boolean role; //角色

//属性 id 的 get/set 方法

public Integer getId(){

return this.id;

}

public void setId(Integer id){

this.id = id;

}

//属性 name 的 get/set 方法

public String getName(){

return this.name;

}

public void setName(String name){

this.name = name;

}

//属性 password 的 get/set 方法

public String getPassword(){

return this.password;

}

public void setPassword(String password){

this.password = password;

}

//属性 role 的 get/set 方法

public boolean getRole(){

return this.role;

}

public void setRole(boolean role){

this.role = role;

}

}

(10)实现DAO。

前面Servlet开发中用到了LoginDao,它主要用于处理底层数据与数据库表的操作。在src下建立org.dao包,在包中创建LoginDao类--LoginDao.java代码为:

package org.dao;

import java.sql.*;

import org.model.*;

import org.db.*;

public class LoginDao {

Connection conn; //数据库连接对象

public Login checkLogin(String name, String password){ //验证登录用户名和密码

try{

conn = DBConn.getConn(); //获取连接对象

PreparedStatement pstmt = conn.prepareStatement("select * from login where name=? " + "and password=?");

pstmt.setString(1, name); //设置 SQL 语句参数1(用户名)

pstmt.setString(2, password); //设置 SQL 语句参数2(密码)

ResultSet rs = pstmt.executeQuery(); //执行查询,返回结果集

if(rs.next()){ //返回结果不为空,表示有此用户信息

Login login = new Login(); //通过JavaBean对象保存值

login.setId(rs.getInt(1));

login.setName(rs.getString(2));

login.setPassword(rs.getString(3));

login.setRole(rs.getBoolean(4));

return login; //返回已经设值的JavaBean对象

}

return null; //无此用户,验证失败,返回null

}catch(Exception e){

e.printStackTrace();

return null;

}finally{

DBConn.CloseConn(); //关闭连接

}

}

}

(11)部署Java EE项目。

项目开发完成,要部署到服务器上方能运行。单击工具栏 (Deploy MyEclipse J2EE Project to Server…)按钮,弹出如图1.33所示的“Project Deployments”对话框,将新建的Java EE项目部署到Tomcat中。

(12)运行浏览。

启动Tomcat ,在浏览器中输入“http://localhost:8080/bookManage”并回车,将显示如图所示的登录页面。输入用户名、密码(必须是数据库login表中已有的)。

单击“登录”按钮提交表单,转到如图1.35所示的主页面并回显欢迎信息。

当然,若是输入错误的密码,或者输入一个数据库login表中不存在的用户名和密码,提交后则会跳转到如图1.36所示的出错页。

中途如果有错,可以设置断点调试错误,包括用IDE导出导入项目,过于简单,在这里就不浪费大家时间了,加油↖(^ω^)↗。

代码我已经上传到码云GitEE上了,码云的下载教程在公众号的历史消息里面也有,这是本系列文章源代码的地址,会持续更新:

https://gitee.com/jahero/bookManage.git

共勉!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档