我想在JSP中执行SQL查询。显示必须是JSP代码,而不是java。
我无法在java页面中引入JSP代码。
package tn.com.tradenet.utilisateur;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Modification extends HttpServlet
{
public void doPost()
{
try
{
String id ="1"; //request.getParameter("userName");
String nom ="mecchlaoui"; //request.getParameter("userName");
String prenom ="fawzia"; //request.getParameter("userName");
String email ="hotmail"; //request.getParameter("password");
String profil ="fawzia"; //request.getParameter("password");
String login ="fawzia"; //request.getParameter("password");
String pass ="1258"; //request.getParameter("password");
ConnectionBD mod = new ConnectionBD();
//String sql="SELECT id FROM utilisateur";
//ResultSet res=mod.execMonSQl(sql);
//while (res.next())
//{
//id = res.getString(1);
//}
mod.execMonUpdate("UPDATE utilisateur SET nom='"+nom+"',prenom='"+prenom+"', email='"+email+"', profil='"+profil+"',login='"+login+"',pass='"+pass+"' WHERE 'id'='"+id+"'");
System.out.println("element ajoutté");}
catch(SQLException s)
{
System.out.println("erreur" +s);
}
}
public static void main(String[] args) {
Modification mdf =new Modification();
mdf.doPost();
}
}
答案 0 :(得分:4)
您需要覆盖真正的 HttpServlet#doPost()
方法,而不是添加另一个不会被servletcontainer调用的方法。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Do your job here.
}
您需要在web.xml
上将此servlet映射到已知的URL模式。
<servlet>
<servlet-name>modification</servlet-name>
<servlet-class>com.example.Modification</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>modification</servlet-name>
<url-pattern>/modification</url-pattern>
</servlet-mapping>
使用上面的<url-pattern>
,servlet将侦听URL http://example.com/context/modification。
最后更改JSP中的HTML表单操作URL,使其与servlet URL匹配。
<form action="modification" method="post">
与具体问题/问题无关,请注意您仍需要更改servlet代码以显示JSP的一些结果页面。 E.g。
request.getRequestDispatcher("/WEB-INF/result.jsp").forward(request, response);
此外,servlet中的main()
方法没有意义,删除它。最后但同样重要的是,您的SQL方法对SQL injection attacks敏感。 Learn PreparedStatement