js中如何交给Servlet处理,Servlet名称为phone,提交为POST
时间: 2024-02-18 19:06:09 浏览: 31
如果要通过POST方式将数据提交给名为"phone"的Servlet进行处理,可以在JavaScript中使用XMLHttpRequest对象的send方法来发送请求,并且需要设置请求头的Content-Type为application/x-www-form-urlencoded。
以下是一个示例代码:
```javascript
const xhr = new XMLHttpRequest();
xhr.open('POST', 'phone', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
const data = 'name=John&age=30'; // 需要提交的数据
xhr.send(data);
```
在上面的代码中,我们使用了XMLHttpRequest对象向名为"phone"的Servlet发送了一个POST请求,并提交了name和age两个参数。当服务器响应后,可以通过xhr.responseText获取到响应的内容。同样,你也可以使用其他JavaScript库或框架来发送网络请求,比如jQuery、Axios等等。
相关问题
2. Eclipse创建一个注册页面(html文件),使用form表单,页面能输入用户名,密码,电话号码,身份证。 3. 打开Navicat连接本地数据库,创建一个数据库,数据库名称为考生姓名拼音,然后创建一个user表,表里的字段跟注册页面的内容对应。 4. form表单使用post方式提交到后台的servlet 5. servlet获取表单中提交过来的数据。 6. 把表单中提交过来的数据存入数据库,然后跳转到一个新的页面显示“注册成功”。的方式和代码
1. 首先在Eclipse中创建一个Java Web项目,项目名为Web_学号后两位。
2. 在项目中创建一个名为register.html的HTML文件,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
</head>
<body>
<h1>用户注册</h1>
<form method="post" action="UserServlet">
<label>用户名:</label><input type="text" name="username"><br><br>
<label>密码:</label><input type="password" name="password"><br><br>
<label>电话号码:</label><input type="text" name="phone"><br><br>
<label>身份证:</label><input type="text" name="idcard"><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
3. 打开Navicat连接本地数据库,创建一个名为考生姓名拼音的数据库,然后在该数据库中创建一个名为user的表。该表应包含与注册页面中输入的信息一致的字段,比如用户名、密码、电话号码和身份证。表的创建代码如下:
```sql
CREATE DATABASE 考生姓名拼音;
USE 考生姓名拼音;
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
idcard VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);
```
4. 在项目中创建一个名为UserServlet的Java Servlet文件,并在其中编写代码来处理表单提交的数据。
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
String phone = request.getParameter("phone");
String idcard = request.getParameter("idcard");
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/考生姓名拼音", "root", "123456");
String sql = "INSERT INTO user (username, password, phone, idcard) VALUES (?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
pstmt.setString(3, phone);
pstmt.setString(4, idcard);
pstmt.executeUpdate();
response.sendRedirect("success.html");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
5. 在注册页面中,表单使用post方式提交到后台的servlet,代码如下:
```html
<form method="post" action="UserServlet">
```
6. 在servlet中,通过request.getParameter()方法获取表单中提交的数据,并将数据存入数据库中。然后将页面重定向到一个新的页面,该页面显示“注册成功”。在本例中,新的页面名为success.html,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册成功</title>
</head>
<body>
<h1>注册成功</h1>
</body>
</html>
```
完成上述步骤后,启动Tomcat服务器,打开浏览器,输入http://localhost:8080/Web_01/register.html,即可访问注册页面,在页面中输入用户信息,然后点击提交按钮,表单数据将会被提交到后台的servlet中,servlet将会把表单数据存入数据库中,然后重定向到一个新的页面,该页面显示“注册成功”。
如果用户名username字段为varchar(50),联系方式phone字段为varchar(50),性别sex字段为enum("男","女","保密")在jsp和servlet如何插入数据
在jsp和servlet中插入数据需要先连接数据库,然后使用SQL语句INSERT INTO插入数据。具体步骤如下:
1. 在jsp页面中,通过表单获取用户输入的数据,例如:
```
<form method="post" action="InsertServlet">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>联系方式:</label>
<input type="text" name="phone"><br>
<label>性别:</label>
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
<input type="radio" name="sex" value="保密">保密
<br>
<input type="submit" value="提交">
</form>
```
2. 在servlet中获取表单提交的数据,并插入到数据库中,例如:
```
public class InsertServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取表单提交的数据
String username = request.getParameter("username");
String phone = request.getParameter("phone");
String sex = request.getParameter("sex");
// 连接数据库
Connection conn = null;
PreparedStatement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// 插入数据
String sql = "INSERT INTO user (username, phone, sex) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, phone);
stmt.setString(3, sex);
stmt.executeUpdate();
// 返回插入成功的消息
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Insert Success</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>插入成功!</h1>");
out.println("</body>");
out.println("</html>");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
注意,在实际开发中,需要对用户输入的数据进行合法性检查和防止SQL注入攻击。