您的位置:首页 > 编程语言 > Java开发

Java EE——基于Mysql、Servlet、JSP的作业管理系统(1)准备阶段

2020-03-11 13:07 609 查看

Java EE——基于Mysql、Servlet、JSP的作业管理系统(1)-准备阶段

1.目标

1)老师:添加作业,添加学生。查询学生作业;
2)学生:根据老师添加的作业,进行作业提交;

2.实现方法

一,数据库方面

(1)数据库的连接和准备工作

连接通过JDBC实现Java连接数据库

参见之前的《JavaEE 学习笔记》link

准备相应的数据库

下载老师发的发的**“javaee.sql”**文件,
一、用cmd的调试环境导入.sql文件中的数据:
WinR键打开cmd输入:

MySQL -u root -p(后面紧跟着密码!!)
MySQL>use school;					//数据库的库名
MySQL> sourceD:\javaee.sql

javaee.sql是你下载的数据库的内容,注意javaee.sql是要放在磁盘的最外层目录的,否则无法导入数据。

(2)对于数据库查找和插入操作

以添加学生来举例

通过JDBC向数据库中添加数据,可以使用INSERT语句实现插入数据SQL语句,对于SQL语句中的参数可以只用占位符“?”代替,然后通过PreparedStatement对其赋值以及执行SQL。代码如下:

try(Connection connection = DriverManager.getConnection(url,"root","123456")){  					// 创建连接
try(Statement statement = connection.createStatement()){                                    				// 通过链接获取statement
String sql = "insert into s_student (id,name,create_time,update_time) values(? ,?,?,?)";

PreparedStatement ps = connection.prepareStatement(sql);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

java.util.Date date = new java.util.Date();
// 为sql语句中第一个问号赋值
ps.setLong(1,student.getId());
// 为sql语句中第二个问号赋值
ps.setString(2, student.getName());
// 为sql语句中第三个问号赋值
ps.setTimestamp(3, Timestamp.valueOf(df.format(student.getCreateTime())));
// 为sql语句中第四个问号赋值
ps.setTimestamp(4, Timestamp.valueOf(df.format(date.getTime())));
// 执行sql语句
ps.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}
}catch (SQLException e) {
e.printStackTrace();
}
}

查找上一次已经说过了,不再赘述

二,Servlet

介绍 (转载自:link

什么是Servlet

Servlet 是Java 语言中编写Web服务器扩展功能的重要技术,同时又时JSP技术的底层运行基础。
Servlet是为了解决实现动态页面而衍生的东西,它基于B/S 模式,用来处理请求和发送相应。它是一个规范,编写一个Servlet 实际上是按照Servlet规范编写一个java类,作为web组件,被Servlet容器所管理。

Servlet 和 Tomcat 的关系

上面提到Servlet是一个web组件,需要部署到容器中才能运行,Tomcat就是一个容器,符合一定规范,提供组件运行环境。
Tomcat 是一个web应用服务器,也是一个servlet/jsp 容器。用于将客户端的请求传送给servle容器,servlet容器实例化一个servlet,将请求传送给实例化的servlet,并将servlet的相应传送回客户端。

【tomcat服务器接受客户端请求并做出响应】补充描述:
① 客户端(通常都是浏览器)访问web服务器,发送http请求
② web服务器接收到请求后,传递给Servlet容器。
③ Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。
④ Servlet实例使用请求对象得到的客户端的请求信息,然后进行相应的处理。
⑤ servlet实例将处理结果通过相应对象发送回客户端,容器负责确保相应正确送出,同时将控制返回给web服务器。

工作原理(请求到web服务器到Servlet流程)

客户端(浏览器)是通过URL 地址访问web服务器中的资源,URL地址(http://hostname: port/contextpath/servletpath)
hostname和port 用来与服务器建立TCP连接,后面的URL 用来选择在服务器中哪个子容器服务用户的请求,这个是在web.xml 中部署完成的。

下面是一个在web.xml部署servlet的例子例子
<servlet>
<servlet-name>testServlet</servlet-name>									//servlet名称,这个名字自定义,与下面的名字保持一致
<servlet-class>com.java.code.class2.servlet.TestServlet</servlet-class>			//servlet的全限定类名,找到servlet在项目中的位置
</servlet>
<servlet-mapping>
<servlet-name>testServlet</servlet-name>								//这里的名称必须和上面的</servlet-name> 保持一致
<url-pattern>/testServletV1</url-pattern>								//<-- 浏览器通过该url 找到servlet -->
</servlet-mapping>

也可以在Servlet类上面加一个注释 @WebServlet("/********************")来简化部署

三, JSP文件

介绍

1)JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常
以**<%开头
以%>**结束。

2)JSP本质上也是一个servlet!!!!!!
为了servlet展示信息的不方便,引入了JSP。
JSP就是在HTML页面中嵌入了java代码。

3)JSP通过网页表单获取用户输入数据访问数据库及其他数据源,然后动态地创建网页

4)JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

当浏览器访问.jsp文件。服务器发现后缀为.jsp,它会根据路径找到.jsp文件,会将.jsp翻译成jsp.java文件,对这个java文件进行编译,产生一个jsp.class文件,将class文件加载运行。将JSP翻译成java文件,它是将JSP中的所有的HTML代码通过流进行输出,也就是说最终翻译成class,被虚拟机加载,它本质是servlet,它就会往回响应,响应回去就是把JSP中的HTML代码以流的方式写回浏览器。所以在JSP中展示出了HTML代码。

插入java代码方法

标签 语法 用途
声明标签 <%! 变量或方法声明%> 声明JSP内所使用的全局变量或方法或内部类(它用于定义成员)(写的内容在成员位置上)
表达式 <%= 表达式 %> 输出java中变量或者表达式的值到页面上(它用于输出) out.print(内容)
程序代码标签 <%程序代码%> 编写java程序代码,但不可以定义代码(它用于定义局部)(声明的变量在局部位置_jspService方法中)
下面是一个展示所有学生_作业数据的表格的部分
<table align="center" width = "960" border="1" bgcolor="white" cellpadding="1" cellspacing="1">
<tr align="center" bgcolor="#f2ffbe" height="30">
<td>ID</td>				//表格第一行
<td>学生学号</td>
<td>作业编号</td>
<td>作业标题</td>
<td>作业内容</td>
<td>创建时间</td>
</tr>
<%						//开始插入java代码
List<StudentHomework> list = (List<StudentHomework>) request.getAttribute("list");	//得到list
if( list == null || list.size() <= 0 ){											//判定list 不为空
out.println("none Data");
}else{
for(StudentHomework sh : list){											//遍历list

%>
<tr align="center">
<td><%=sh.getId()%></td>		//<%=表达式%> 代表打印一个变量
<td><%=sh.getStudentId()%></td>
<td><%=sh.getHomeworkId()%></td>
<td><%=sh.getHomeworkTitle()%></td>
<td><%=sh.getHomeworkContent()%></td>
<td><%=sh.getCreateTime()%></td>
</tr>
<%

}
}
%>
</table>

以上就是我们制作这个系统的准备阶段

  • 点赞
  • 收藏
  • 分享
  • 文章举报
For_user 发布了7 篇原创文章 · 获赞 1 · 访问量 130 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐