Servlets 关于一些基本JavaWebApplication/Servlet的建议
我正在学习如何使用servlet构建Java Web应用程序。 到目前为止,我用Tomcat服务器建立了一个Maven项目,并用一些表单创建了一个基本应用程序并运行。但我有一些基本问题:Servlets 关于一些基本JavaWebApplication/Servlet的建议,servlets,http-method,Servlets,Http Method,我正在学习如何使用servlet构建Java Web应用程序。 到目前为止,我用Tomcat服务器建立了一个Maven项目,并用一些表单创建了一个基本应用程序并运行。但我有一些基本问题: JavaServlet包的doGet和doPost方法之间有什么区别?我理解请求和响应之间的区别,我理解HTML GET和POST,但由于应用程序是从服务器端工作的,我感到困惑 在下面的示例中,为什么我需要调用doGet方法的doPost方法(它来自我使用的教程) 当我运行服务器并在浏览器中打开它时,我可以
<form action="/displayuserservlet" method="post">
<center>
First name:
<input type="text" name="firstName" value="John">
<br>
Last name:
<input type="text" name="lastName" value="Doe">
<input type="submit"><!-- Press this to submit form -->
</center>
</form>
名字:
姓氏:
我的Servlet:
@WebServlet("/displayuserservlet")
public class DisplayUserServlet extends HttpServlet {
//REQ is anything that comes FROM the browser
//RES is anything sent TO the browser
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter pw = res.getWriter();//get the stream to write the data
String title = "Results of form";
String firstName = req.getParameter("firstName");
String lastName = req.getParameter("lastName");
//writing html in the stream
pw.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#fdf5e6\">\n" +
"<h1>" + title + "</h1>\n" +
"<p>First name:" + firstName + "</p>\n" +
"<p>First name:" + lastName + "</p>\n" +
"</body></html>");
pw.close();//closing the stream
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doGet(req, res);
}
}
@WebServlet(“/displayuserservlet”)
公共类DisplayUserServlet扩展了HttpServlet{
//REQ是来自浏览器的任何内容
//RES是发送到浏览器的任何内容
@凌驾
公共无效数据集(HttpServletRequest-req、HttpServletResponse-res)
抛出ServletException、IOException{
res.setContentType(“文本/html”);
PrintWriter pw=res.getWriter();//获取流以写入数据
String title=“表单结果”;
字符串firstName=req.getParameter(“firstName”);
字符串lastName=req.getParameter(“lastName”);
//在流中编写html
pw.println(ServletUtilities.headWithTitle(title)+
“\n”+
“”+标题+“\n”+
名字:“+firstName+”\n+
名字:“+lastName+”\n+
"");
pw.close();//关闭流
}
@凌驾
public void doPost(HttpServletRequest-req、HttpServletResponse-res)
抛出ServletException、IOException{
doGet(需求、资源);
}
}
已编辑:调用代码格式doGet()
和doPost()
以响应客户端发出的GET和POST请求。如果希望处理GET和POST请求,但希望以完全相同的方式处理它们,则可以使用doGet()
调用doPost()
,反之亦然,如示例所示。或者,如果希望以不同的方式处理这些请求类型,则可以以不同的方式实现它们。还有用于其他请求类型的方法--doPut()
用于PUT请求,等等
方法Request.getParameter()
返回请求参数的值,即在其请求中从客户端传递的值。如果客户端不提供值,此方法将返回null
。服务器上没有存储任何内容——如果您希望存储数据,您可以自己存储。您可以将其暂时存储在会话
对象中,或者更永久地存储在数据库或其他存储系统中
有很多关于Java web编程的好书。试图通过查看“hello,world”示例来找出所有位是如何组合在一起的,这可能不是处理这个非常复杂的主题的最佳方法。doGet()
和doPost()
被调用以响应客户机发出的get和POST请求。如果希望处理GET和POST请求,但希望以完全相同的方式处理它们,则可以使用doGet()
调用doPost()
,反之亦然,如示例所示。或者,如果希望以不同的方式处理这些请求类型,则可以以不同的方式实现它们。还有用于其他请求类型的方法--doPut()
用于PUT请求,等等
方法Request.getParameter()
返回请求参数的值,即在其请求中从客户端传递的值。如果客户端不提供值,此方法将返回null
。服务器上没有存储任何内容——如果您希望存储数据,您可以自己存储。您可以将其暂时存储在会话
对象中,或者更永久地存储在数据库或其他存储系统中
有很多关于Java web编程的好书。通过查看“hello,world”示例,试图找出所有比特是如何组合在一起的,这可能不是处理这个非常复杂主题的最佳方法。Java Servlet包的doGet和doPost方法之间的区别是什么?我理解请求和响应之间的区别,也理解HTML GET和POST,但由于应用程序是从服务器端运行的,我感到困惑。 在doGet方法中,参数被附加到URL,并与头信息一起发送。在doPost中,参数在正文中以单独的行发送。。。doGet()方法通常用于查询或从服务器获取一些信息。doPost()通常用于更新或向服务器发布某些信息 例如,doGet()URL如下所示:
www.yourwebsite.com/servleturl?parameter1=smeting¶meter2=smthingelse
但是,doPost()URL不显示URL中的参数,因此它只是:
www.yourwebsite.com/servleturl
您应该始终使用doPost处理敏感信息,如登录名或付款表单
在下面的示例中,为什么我需要调用doGet方法的doPost方法(它来自我使用的教程)
这被称为POST-REDIRECT-GET。这基本上是一个防止