好久没有写servlet—jsp类型的web开发了,今天做了一个简单的开发流程。废话不多说上代码。
1. 创建一个web项目
2. 创建包:
3.在index.jsp页面增加一个表单
<h3>增加</h3>
<form action="addStudentAction" method="post">
用户名:<input type="text" name="addname"/>
密码:<input type="text" name="pwd"/>
<input type="submit" value="提交"/>
</form>
4.在com.arz.action包中创建一个action也就是一个servlet
package com.arz.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.arz.dao.StudentDao;
public class AddStudentAction extends HttpServlet {
StudentDao dao = new StudentDao();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String name = req.getParameter("addname");
System.out.println(name);
String pwd = req.getParameter("pwd");
dao.add(name, pwd);
req.getRequestDispatcher("stu/ok.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req,resp);
}
}
5.创建dao
package com.arz.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.arz.po.Student;
import com.arz.util.JDBCUtil;
public class StudentDao {
private static Connection conn = null;
private static PreparedStatement ps = null;
public void add(String name , String pwd){
try{
conn = JDBCUtil.getConn();
String sql = "insert into student(name,pwd)values(?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pwd);
ps.execute();
}catch(SQLException e){
e.printStackTrace();
}finally{
JDBCUtil.close(null, ps, conn);
}
}
public void del(String name){
try{
conn = JDBCUtil.getConn();
String sql = "delete from student where name = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
System.out.println(ps.execute());
}catch(SQLException e){
e.printStackTrace();
}finally{
JDBCUtil.close(null, ps, conn);
}
}
public List<Student> sel(String name){
List<Student> list = new ArrayList<Student>();
ResultSet rs = null;
try{
conn = JDBCUtil.getConn();
String sql = "select name,pwd from student where name = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery();
while(rs.next()){
String sultName = rs.getString(1);
String sultPwd = rs.getString(2);
list.add(new Student(sultName,sultPwd));
}
}catch(SQLException e){
e.printStackTrace();
}finally{
JDBCUtil.close(rs, ps, conn);
}
return list;
}
public static void main(String[] args){
StudentDao dao = new StudentDao();
List<Student> list = dao.sel("123123");
System.out.println(list.size());
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i).getName());
}
}
}
6.创建po
package com.arz.po;
public class Student {
private int id ;
private String name ;
private String pwd;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Student(){}
public Student(String name,String pwd){
this.name = name;
this.pwd = pwd;
}
}
7.创建工具包,可以方便得到连接和关闭连接
package com.arz.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
public class JDBCUtil {
private static Connection conn;
private static String url = "jdbc:mysql://localhost:3306/test";
private static String user = "root";
private static String password = "root";
public static Connection getConn() {
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url,user,password);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void close(ResultSet rs , Statement sta , Connection conn ){
if(rs != null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(sta != null){
try{
sta.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(conn != null){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
8.做完这些别忘了导如Mysql的包
9.然后是配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>student</servlet-name>
<servlet-class>com.arz.action.AddStudentAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>student</servlet-name>
<url-pattern>/addStudentAction</url-pattern>
</servlet-mapping>
</web-app>
基本上代码写完了。现在我们要走一下servlet的请求过程
1. 首先是在index页面输入用户名和密码。
2. From发出请求(action=” addStudentAction”)
3. Web容器接受到请求后解析web.xml找到了url-pattern这个元素解析之后就可以找到对应的servlet类。在这个如果不太清楚web容器的可以看看我的“浅析Tomcat”这篇文章里面讲解了tomcat的原理。
4. 在servlet里面在去寻找对应的方法(get/post)
分享到:
相关推荐
4. Servlet 的基本工作流程:客户机将请求发送到服务器,服务器上的 Web 容器实例化 Servlet,Web 容器将请求信息发送到 Servlet,Servlet 创建一个响应,并将其返回到 Web 容器,Web 容器将响应发回客户机。...
虽然可以直接使用Servlet编写Web应用,但现在许多现代框架如Spring MVC、Struts等都基于Servlet API,提供更高级别的抽象,简化开发流程。 理解并熟练掌握Java Servlet网络编程,能够帮助开发者构建高效、可扩展的...
Servlet是一种Java编程接口,它允许开发者编写服务器端程序,处理来自客户端(如浏览器)的请求并返回响应。JSP则是HTML代码和Java代码的混合体,提供了一种更便捷的方式来创建动态网页。 本压缩包中的源代码涵盖了...
Servlet 实验报告.pdf ...本实验报告总结了 Servlet 应用的基本原理和工作流程,并掌握了 Servlet 的方法 init()、destory()、doGet()、doPost()。同时,也掌握了 web 开发的 MVC 模式和 Servlet 的作用。
### Servlet与JSP核心编程...通过学习本书,开发者不仅可以掌握 Servlet 和 JSP 的基本原理,还能了解如何构建高效、安全的 Web 应用程序。对于希望深入了解 Java Web 开发的技术人员来说,这是一本不可或缺的参考书。
### Servlet编程基础知识点 #### 一、实验目的与要求 1. **理解Servlet的生命周期**: - **初始化阶段**:当服务器启动时,如果配置文件中指定了Servlet,则Servlet会被加载并创建一个实例。 - **服务阶段**:...
- **JSP与Servlet的通信**:通常情况下,JSP页面作为视图层负责显示数据,而Servlet作为控制层负责处理业务逻辑和控制流程。两者通过共享请求范围内的数据进行交互。 #### 五、实战案例分析 - **用户登录案例**:...
首先,理解Servlet的基本概念至关重要。Servlet是一个Java类,它遵循Java Servlet API(Application Programming Interface)规范,由服务器加载并执行,以响应来自客户端(如浏览器)的请求。Servlet生命周期包括...
四、Servlet编程 1. 创建Servlet:继承HttpServlet类并重写doGet或doPost方法。 2. 注解配置:使用@WebServlet注解简化配置,如`@WebServlet("/myservice")`。 3. 获取请求参数:通过ServletRequest对象的...
Servlet的工作流程主要包括以下几个步骤: 1. **加载和实例化**:当Servlet容器(通常是Web服务器)接收到客户端的请求时,如果发现该请求与某个Servlet相关联,则会加载并实例化该Servlet。 2. **初始化**:Servlet...
本课件主要针对已有编程基础的人员,旨在深入理解JSP和Servlet的概念及应用。 **Servlet 概述** Servlet是一个用Java编写的服务器端程序,它的主要功能是接收并响应来自客户端(如浏览器)的请求,处理数据,然后将...
在本实例中,我们将深入探讨如何使用Servlet计算一个数的平方根,这将帮助你理解Servlet的基本工作原理以及如何结合实际应用进行编程。 首先,Servlet的工作流程包括:客户端发送请求到服务器,服务器通过Servlet...
- 在实际开发中,通常会结合使用Servlet和JSP,Servlet负责处理业务逻辑和控制流程,而JSP则负责展示数据。 #### 六、学习建议 对于希望深入学习Servlet和JSP技术的学习者来说,《Servlet与JSP核心编程第二版》是一...
【猜数字游戏-Servlet练习】是一个适合初学者的项目,旨在帮助学习者深入理解Servlet技术。Servlet是Java Web开发中的核心组件,它...通过这个练习,你不仅可以了解Servlet的工作流程,还能锻炼到问题解决和编程能力。
Servlet是Java平台上的一个...了解这两个关键概念,您就能快速入门Servlet编程,并能进一步探索更高级的Web开发技术。在实践中,不断学习和实践,您将逐渐熟练掌握这些知识,为构建高效、稳定的Web应用打下坚实基础。
在本教程中,我们将深入理解Servlet的基本概念、生命周期、API使用及其工作原理。 首先,Servlet是按照Servlet规范编写的一个Java类,它必须实现`javax.servlet.Servlet`接口。Servlet的主要作用是在服务器上运行,...
在学习过程中,建议动手实践,编写自己的Servlet,结合实际项目理解Servlet的工作流程,这将有助于巩固理论知识,并提高编程技能。同时,不断关注Java Web的最新技术动态,例如Spring MVC框架,以便在实际工作中更好...