gpt4 book ai didi

java - 如何使用 servlet 和 java 正确显示 Mysql 表?

转载 作者:行者123 更新时间:2023-11-29 04:46:11 24 4
gpt4 key购买 nike

我是新手。我有一个作业需要连接mysql、servlet和java(因为我想把java代码和html代码分开。以前我把代码合并起来更容易,但被拒绝了)所以,基本上,我在 mySql 中这样写,

create table login2 (username varchar (30), password varchar(30), designation varchar(10));
insert into login2 values('lala','123','A');

然后我使用 eclipse 在 servlet 中创建 loginDisp.java。这是我的命令

 package Servlet;

import java.io.*;
import java.util.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class loginDisp extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
// String username=request.getParameter("Username");
// String password=request.getParameter("Password");

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Servlet JDBC</title></head>");
out.println("<body>");
out.println("<h1>Servlet JDBC</h1>");
out.println("</body></html>");
// connecting to database
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection
("url/tablename","uname","pssword");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM login2");
// displaying records
while(rs.next()){
out.print(rs.getObject(1).toString());
out.print("\t\t\t");
out.print(rs.getObject(2).toString());
out.print("<br>");
}

} catch (SQLException e) {
throw new ServletException("Servlet Could not display records.", e);
} catch (ClassNotFoundException e) {
throw new ServletException("JDBC Driver not found.", e);
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(con != null) {
con.close();
con = null;
}
} catch (SQLException e) {}
}
out.close();
}
}

当我执行时,它显示得很好。因此,我开始制作 Login.jsp,因为我想制作一个 text.box 供用户插入用户名和密码。这是我的代码

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<body>
<center>
<div class="wrapper">
<br>
<br>
<h2>Doctor</h2>

<form name="form1" method="post" action="loginDisp" > <!-- onsubmit="return validateForm()" -->
<table width="326" border="1" align="center">
<center> <tr>
<th width="138" scope="row">Username</th>
<td width="142"><input type="text" name="Username"></td>

</tr>
</center>


<tr>
<th height="31" style="width: 162px;"><span class="style2">Password</span>
</th>

<td width="142"><input type="password" name="Password"></td>
</tr>

<tr>


</tr>
</table>
<p align="center">
<input type="submit" name="Submit" value="Submit">
</p> ${message}
</form>
</div>
</center>

</body>

</body>
</html>

然后我从显示的 mySQL 中获取数据。我在 servlet 中添加了另一个 log.java,因为我想当我们需要从 jsp 获取数据到数据库并在被调用时显示。这是 log.java 中的代码

package Servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class log extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//Get username and password from the JSP page


String username=request.getParameter("Username");
String password=request.getParameter("Password");

//Print the above got values in console

System.out.println("The username is" +username);

System.out.println("\nand the password is" +password);
}
}

在 login.jsp 中插入的用户名和密码不会自动插入到 mySQL 中,因此当我尝试执行 loginDisp.java 时,它只会显示我在 mySQL 中手动插入的数据。

最佳答案

你不能使用 java 文件名作为 Action ,这是在 web.xml 文件中定义的,并且有 servlet 映射,你可以使用

  <servlet>
<servlet-name>log</servlet-name>
<servlet-class>loginDisplay</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>log</servlet-name>
<url-pattern>/loginDisplay</url-pattern>
</servlet-mapping>

现在您可以在操作标记中使用 action = "loginDisplay" 并使用此

希望您没有遇到404错误的问题。

关于java - 如何使用 servlet 和 java 正确显示 Mysql 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18629900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com