gpt4 book ai didi

java - 一个 servlet java 中的多个操作 (CRUD)

转载 作者:行者123 更新时间:2023-11-29 06:02:51 25 4
gpt4 key购买 nike

我想使用一个 servlet 进行四个操作的 CRUD。以下 servlet 可以很好地通过以下 url 添加数据

http://localhost:8080/mobsurvey/register-company/?companyname=xyz&email=abc@abc.com&username=user&password=pass&description=xyz

以 json 形式响应{"result":"true","lastId":2}

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.*;
import com.saffroze.Event;




public class CompanyRegister extends HttpServlet {
Connection conn=null;
public CompanyRegister() throws InstantiationException, IllegalAccessException {

conn = Dbhelper.getConnection();
// creatBookManagerTable();
}

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {


String companyname = req.getParameter("companyname");
String email = req.getParameter("email");
String usr = req.getParameter("username");
String pwd = req.getParameter("password");
String description = req.getParameter("description");



PreparedStatement pst=null;
String sql = "insert into company("+ "name,"+ "email,"+ "username,"+ "password,"+ "description)"+" values(?,?,?,?,?)";

try {

PreparedStatement pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
//String insertDataSql="insert into company(name,email,username,password,description) values('" + companyname + "','" + email + "','" + usr + "','" + pwd + "','" + description + "');";

//Statement stmt;

pstmt.setString(1,companyname);
pstmt.setString(2,email);
pstmt.setString(3,usr);
pstmt.setString(4,pwd);
pstmt.setString(5,description);

Gson gson = new Gson();
//resp.setContentType("application/json; charset=UTF-8");
resp.setContentType("text/plain");
pstmt.executeUpdate();
ResultSet keys = pstmt.getGeneratedKeys();

keys.next();
int id = 0;

id = keys.getInt(1);

keys.close();



if(id>0){

Event obj = new Event("true",id);

resp.getWriter().println(gson.toJson(obj));
}else
{
int emptyid=0;
Event obj = new Event("false",emptyid);


resp.getWriter().println(gson.toJson(obj));


}

}

catch(Exception e){

e.printStackTrace();
}

}

我想使用相同的 servlet 进行其他操作,如通过 url 删除、查看等(它应该只使用上面的一个 servlet 进行操作)

http://localhost:8080/mobsurvey/view-company/?company_id=1

应该在 json 中响应它的数据

目前是 web.xml

  <display-name>mobsurvey</display-name>
<servlet>
<servlet-name>CompanyRegister Servlet</servlet-name>
<servlet-class>com.saffroze.CompanyRegister</servlet-class>

</servlet>
<servlet-mapping>
<servlet-name>CompanyRegister Servlet</servlet-name>
<url-pattern>/register-company/*</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

我是java-servlet的新手

有什么建议吗?谢谢。

最佳答案

您可以在您的网址中添加一些额外的信息。
点赞参数

?action=edit&id=1

并且在您的 servlet 中,您可以使用 action 参数进行决策

String action = request.getParameter("action");
if(action.equal(...) { /* Your logic here */ }

或者你可以实现你自己的调度器来路由带有类似 URL 的请求

company/edit/1

或者您可以覆盖 service() 方法以支持 PUT、DELETE ……并使您的 servlet 符合 REST 风格。但是浏览器对这些方法的支持is not very good .

关于java - 一个 servlet java 中的多个操作 (CRUD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9511139/

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