public static String getParameter(String name, String defaultValue) { String value = getParameter(name); return getDefault(defaultValue, value); }
时间: 2024-04-20 15:27:21 浏览: 13
这段代码看起来像是一个方法,它接受两个参数,分别是name和defaultValue。它的作用是获取名为name的参数的值,如果该参数不存在则返回defaultValue。在方法中,首先调用getParameter(name)方法获取参数值,然后使用getDefault(defaultValue, value)方法对参数值进行处理并返回最终结果。但是,由于代码中getDefault方法的实现未知,无法确定方法的实际行为。
相关问题
使用req.getParameter()无法获得post请求体里的参数怎么回事
在HTTP协议中,POST请求和GET请求的参数传递方式是不同的。
GET请求的参数是直接附加在URL后面,形如`http://example.com/path?param1=value1¶m2=value2`,所以可以使用request.getParameter()方法来获取参数值。
而POST请求的参数是放在请求体中的,使用request.getParameter()方法无法获取,需要通过其他方式来获取参数值。常见的方式有以下几种:
1. 使用request.getInputStream()方法来获取请求体的字节流,再将字节流转换为字符串,最后解析出参数值。
```java
InputStream inputStream = request.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
String requestBody = outputStream.toString("UTF-8");
```
这种方式虽然可以获取请求体中的参数值,但是需要手动解析,比较麻烦。
2. 使用第三方库,比如Apache的HttpComponents,来处理POST请求。
```java
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
StringEntity entity = new StringEntity(jsonString, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
String responseBody = EntityUtils.toString(response.getEntity());
```
这种方式使用起来比较简单,但是需要引入第三方库,可能会增加工程的复杂度。
3. 使用Servlet 3.0中新增的request.getReader()方法来获取请求体的字符流,再将字符流转换为字符串,最后解析出参数值。
```java
BufferedReader reader = request.getReader();
StringBuilder stringBuilder = new StringBuilder();
char[] buffer = new char[1024];
int length;
while ((length = reader.read(buffer)) != -1) {
stringBuilder.append(buffer, 0, length);
}
String requestBody = stringBuilder.toString();
```
这种方式虽然比第一种方式要简单一些,但是需要注意的是,只能在Servlet 3.0及以上版本中使用。
JAVA web 写一个学生管理系统
好的,下面是一个简单的Java Web学生管理系统的示例。
首先,我们需要建立一个数据库和一个名为"students"的表,包含以下字段:id(int类型,主键)、name(varchar类型)、age(int类型)、gender(varchar类型)和major(varchar类型)。
然后,我们创建一个Java Web项目,并添加以下文件:
1. Student.java - 学生类,包含id、name、age、gender和major的属性,以及对这些属性进行获取和设置的方法。
```
public class Student {
private int id;
private String name;
private int age;
private String gender;
private String major;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
```
2. StudentDAO.java - 数据访问对象,包含对学生表进行增、删、改、查等操作的方法。
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class StudentDAO {
private String jdbcURL;
private String jdbcUsername;
private String jdbcPassword;
private Connection jdbcConnection;
public StudentDAO(String jdbcURL, String jdbcUsername, String jdbcPassword) {
this.jdbcURL = jdbcURL;
this.jdbcUsername = jdbcUsername;
this.jdbcPassword = jdbcPassword;
}
protected void connect() throws SQLException {
if (jdbcConnection == null || jdbcConnection.isClosed()) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new SQLException(e);
}
jdbcConnection = DriverManager.getConnection(jdbcURL, jdbcUsername, jdbcPassword);
}
}
protected void disconnect() throws SQLException {
if (jdbcConnection != null && !jdbcConnection.isClosed()) {
jdbcConnection.close();
}
}
public boolean insertStudent(Student student) throws SQLException {
String sql = "INSERT INTO students (name, age, gender, major) VALUES (?, ?, ?, ?)";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setString(1, student.getName());
statement.setInt(2, student.getAge());
statement.setString(3, student.getGender());
statement.setString(4, student.getMajor());
boolean rowInserted = statement.executeUpdate() > 0;
statement.close();
disconnect();
return rowInserted;
}
public List<Student> listAllStudents() throws SQLException {
List<Student> listStudents = new ArrayList<>();
String sql = "SELECT * FROM students";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String gender = resultSet.getString("gender");
String major = resultSet.getString("major");
Student student = new Student();
student.setId(id);
student.setName(name);
student.setAge(age);
student.setGender(gender);
student.setMajor(major);
listStudents.add(student);
}
resultSet.close();
statement.close();
disconnect();
return listStudents;
}
public boolean deleteStudent(Student student) throws SQLException {
String sql = "DELETE FROM students where id = ?";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setInt(1, student.getId());
boolean rowDeleted = statement.executeUpdate() > 0;
statement.close();
disconnect();
return rowDeleted;
}
public boolean updateStudent(Student student) throws SQLException {
String sql = "UPDATE students SET name = ?, age = ?, gender = ?, major = ?";
sql += " WHERE id = ?";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setString(1, student.getName());
statement.setInt(2, student.getAge());
statement.setString(3, student.getGender());
statement.setString(4, student.getMajor());
statement.setInt(5, student.getId());
boolean rowUpdated = statement.executeUpdate() > 0;
statement.close();
disconnect();
return rowUpdated;
}
public Student getStudent(int id) throws SQLException {
Student student = null;
String sql = "SELECT * FROM students WHERE id = ?";
connect();
PreparedStatement statement = jdbcConnection.prepareStatement(sql);
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String gender = resultSet.getString("gender");
String major = resultSet.getString("major");
student = new Student();
student.setId(id);
student.setName(name);
student.setAge(age);
student.setGender(gender);
student.setMajor(major);
}
resultSet.close();
statement.close();
disconnect();
return student;
}
}
```
3. StudentController.java - 控制器,处理http请求并返回相应的视图。
```
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/")
public class StudentController extends HttpServlet {
private static final long serialVersionUID = 1L;
private StudentDAO studentDAO;
public void init() {
String jdbcURL = getServletContext().getInitParameter("jdbcURL");
String jdbcUsername = getServletContext().getInitParameter("jdbcUsername");
String jdbcPassword = getServletContext().getInitParameter("jdbcPassword");
studentDAO = new StudentDAO(jdbcURL, jdbcUsername, jdbcPassword);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getServletPath();
try {
switch (action) {
case "/new":
showNewForm(request, response);
break;
case "/insert":
insertStudent(request, response);
break;
case "/delete":
deleteStudent(request, response);
break;
case "/edit":
showEditForm(request, response);
break;
case "/update":
updateStudent(request, response);
break;
default:
listStudent(request, response);
break;
}
} catch (SQLException ex) {
throw new ServletException(ex);
}
}
private void listStudent(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
List<Student> listStudent = studentDAO.listAllStudents();
request.setAttribute("listStudent", listStudent);
RequestDispatcher dispatcher = request.getRequestDispatcher("StudentList.jsp");
dispatcher.forward(request, response);
}
private void showNewForm(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("StudentForm.jsp");
dispatcher.forward(request, response);
}
private void showEditForm(HttpServletRequest request, HttpServletResponse response)
throws SQLException, ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
Student existingStudent = studentDAO.getStudent(id);
RequestDispatcher dispatcher = request.getRequestDispatcher("StudentForm.jsp");
request.setAttribute("student", existingStudent);
dispatcher.forward(request, response);
}
private void insertStudent(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String major = request.getParameter("major");
Student newStudent = new Student();
newStudent.setName(name);
newStudent.setAge(age);
newStudent.setGender(gender);
newStudent.setMajor(major);
studentDAO.insertStudent(newStudent);
response.sendRedirect("list");
}
private void updateStudent(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
String gender = request.getParameter("gender");
String major = request.getParameter("major");
Student student = new Student();
student.setId(id);
student.setName(name);
student.setAge(age);
student.setGender(gender);
student.setMajor(major);
studentDAO.updateStudent(student);
response.sendRedirect("list");
}
private void deleteStudent(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
Student student = new Student();
student.setId(id);
studentDAO.deleteStudent(student);
response.sendRedirect("list");
}
}
```
4. StudentForm.jsp - 新增/编辑学生的表单。
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Student Form</title>
</head>
<body>
<h1>Student Form</h1>
<form method="post" action="${action}">
<input type="hidden" name="id" value="${student.id}" />
<table>
<tr>
<td>Name:</td>
<td><input type="text" name="name" value="${student.name}" /></td>
</tr>
<tr>
<td>Age:</td>
<td><input type="text" name="age" value="${student.age}" /></td>
</tr>
<tr>
<td>Gender:</td>
<td><input type="text" name="gender" value="${student.gender}" /></td>
</tr>
<tr>
<td>Major:</td>
<td><input type="text" name="major" value="${student.major}" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Save" /></td>
</tr>
</table>
</form>
</body>
</html>
```
5. StudentList.jsp - 显示学生列表。
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Student List</title>
</head>
<body>
<h1>Student List</h1>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
<th>Major</th>
<th colspan="2">Action</th>
</tr>
<c:forEach items="${listStudent}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
<td>${student.gender}</td>
<td>${student.major}</td>
<td><a href="edit?id=${student.id}">Edit</a></td>
<td><a href="delete?id=${student.id}">Delete</a></td>
</tr>
</c:forEach>
</table>
<br />
<a href="new">New Student</a>
</body>
</html>
```
最后,我们将这些文件打包成一个war文件,并将其部署到Tomcat服务器上。现在我们就可以通过访问http://localhost:8080/来使用我们的学生管理系统了。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)