一、Hbulidx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>前后端大融合</title>
<style>
input[type='text']{
width: 200px;
height: 30px;
background-color: pink;
border-color: #FFC0CB;
border-radius: 10px;/*圆角边框*/
}
input[type='submit']{
background-color: pink;
border-color: pink;
width: 40px;
height: 30px;
color: #FF0000;
font-size: ;
}
</style>
</head>
<body>
<form method="post" action="http://localhost:8080/web11_19_war_exploded/ServletDemo6">
<h1>提交部门数据</h1>
<h3>部门:<input type="text" name="deptno" placeholder="部门编号"/></h3>
<h3>名称:<input type="text" name="dname" placeholder="名城编号"/></h3>
<h3>地址:<input type="text" name="loc" placeholder="地址编号"/></h3>
<input type="submit" value="保存" />
</form>
</body>
</html>
二、idea
package cn.tedu.servlet;
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 java.io.IOException;
@WebServlet("/ServletDemo6")
public class ServletDemo6 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String deptno = request.getParameter("deptno");
String dname = request.getParameter("dname");
String loc = request.getParameter("loc");
System.out.println(deptno+dname+loc);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
三、jdbc
package cn.tedu.servlet;
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 java.io.IOException;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
@WebServlet("/ServletDemo6")
public class ServletDemo6 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
request.setCharacterEncoding("utf-8");
String deptno = request.getParameter("deptno");
String dname = request.getParameter("dname");
String loc = request.getParameter("loc");
System.out.println(deptno+dname+loc);
//获取驱动
//获取连接
//获取传输器
//执行sql
//关闭资源
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/cgb2109?characterEncoding=utf-8";
Connection c = DriverManager.getConnection(url, "root", "root");
String sql = "insert into dept values(?,?,?)";//sql骨架 ?是占位符
PreparedStatement p = c.prepareStatement(sql);
p.setObject(1, deptno);
p.setObject(2, dname);
p.setObject(3, loc);
p.executeUpdate();
p.close();
c.close();
} catch (Exception e) {
//System.out.println("输入失败,请检查数据");
e.printStackTrace();//打印报错信息
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
四、结果
五、图
六、
请求转发
概述
请求转发是服务器内部资源的一种跳转方式,即当浏览器发送请求访问服务器中的某一个资源时,该资源将请求转交给另外一个资源进行处理的过程,就叫做请求转发,具有以下特点:
1,请求转发整个过程是一次请求、一次响应
2,请求转发前后,浏览器地址栏地址不会发生变化(浏览器–访问–>A–转发–>B,地址栏地址始终指向A的地址)
3,请求转发前后的request对象是同一个
4,转发前后的两个资源必须属于同一个Web应用,否则将无法进行转发
5,使用代码: request.getRequestDispatcher(访问目的资源的路径).forward(request,response);
6,也可以使用 setAttribute()/getAttribute()来验证
————————————————
servlet 1
package cn.tedu.servlet;
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 java.io.IOException;
@WebServlet("/servleta")
public class Servleta extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
//要求两个资源互相调用 但是两个资源必须在同一项目中 本质是服务器的业务浏览器发现不了
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("aservlet被调用");
request.setAttribute("name","jack");
request.getRequestDispatcher
("/Servletb").forward(request,response);
}
}
sevlet 2
package cn.tedu.servlet;
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 java.io.IOException;
@WebServlet("/Servletb")
public class Servletb extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("b servlet被执行");
Object date=request.getAttribute("name");
System.out.println(date);
}
}
测试响应(响应在浏览器上)
package cn.tedu.servlet;
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 java.io.IOException;
import java.io.PrintWriter;
//测试响应
@WebServlet("/ResponseServlet")
public class ResponseServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//测试java给浏览器响应
response.setContentType("text/html;charset=utf-8");//中文乱码 固定写法
//获取一个写出流
PrintWriter out = response.getWriter();//print输出可以换行
//直接写到浏览器
out.write("helloServlet");
out.write("天下武功");
out.write("唯快不破");
}
}
重定向
1.整个过程会有两个请求 两个回应
2.地址栏会发生变化
response.sendRedirect(对方的访问方式) 谁都行
package cn.tedu.servlet;
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 java.io.IOException;
@WebServlet("/AAServlet")
public class AAServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
//面试题:重定向和请求转发的区别???
// //1,请求转发是请求request的功能,全程1次请求1次响应,地址栏不变
// //request.getRequestDispather("目标访问的方式").forward(请求,响应)
// //2,重定向是response的功能,全程2次请求2次响应,地址栏改变
// //response.sendRedirect("目标访问的方式")
//————————————————
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.sendRedirect("http://www.baidu.com/");
}
}
更详细、原链接:cgb2109-day17_cgblpx的博客-CSDN博客