问题:Tomcat已经started了 为什么输入网址还是404?
因为没有把网页放入tomcat容器内:
右键–Add and Remove
Add>—Finish即可。
通过servlet 找到网页输入的内容的详细步骤:
第一步:file–new–Dynamic Web Project 建立一个动态网页工程
注意:这一步选择的是next 不要直接finish
打钩,建立xml文件,方便以后填写servlet方法。
这样就是创建成功了。
第二步:
建立index文件
右键 new --html file
第三步:
在body里面写方法体。注意,表单 的属性是action
输入框的属性是name
在表单里面写一个提交按钮 submit。
第四步: 建立servlet包。路径无所谓,一般要写在src文件夹内。
第五步:右键servlet包—new—class,建立第一个servlet文件(注意命名规范)
继承httpServlet,重写doGet,doPost方法。(打一个doget dopost alt+/ 唤出override)
request.getParameter()方法,用于从表单中根据name属性取值
删掉doGet方法中的 super.doGet 移动至doPost中,因为我们要从页面获取数据,这个goGet方法要自己写,填自己的参数。
String name= req.getParameter(“name”); 这个括号里面的值就是上面页面中第一个 输入框的name的值
String psd= req.getParameter(“password”); 这个括号里面的值就是上面页面中第二个 输入框的password的值
第六步:点击web.xml–source
在原有配置文件中加入servlet方法语句
这个index就是前面form表单的action属性
servlet-name后面的名字 无所谓,上下对应一致即可。
class里面的路径要写对名字,指向刚才写的包内的class文件。
第七步:打开tomcat 运行网页。
点击提交后触发空白页面,控制台显示的输入的内容即成功。
通过Servlet的PrintWriter方法设置返回页面
前面的方法以及可以返回到控制台了,但是会返回一个空白页面。如何把输入的值返回到页面上?
通过PrintWriter方法即可实现:
注意,在write前面要设置字体样式,不然返回会乱码。
index代码:
Servlet代码(与上面的结合,都写在doGet方法里):
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name= req.getParameter("name");
String password01 =req.getParameter("password01");
String password02 =req.getParameter("password02");
String sex=req.getParameter("sex");
String[] hobby=req.getParameterValues("hobby");
String city=req.getParameter("city");
resp.setContentType("text/html;charset=utf-8");
PrintWriter pw=resp.getWriter();
if(password01.equals(password02)){
pw.write("<h1>注册成功!</h1>");
pw.write("<h1>"+name+",欢迎您!</h1>");
if(sex.equals("1")){
pw.write("<h1>性别:男</h1>");
}else{
pw.write("<h1>性别:女</h1>");
}
pw.write("<h1>爱好:</h1>");
for (String s : hobby) {
switch(s){
case "1":
pw.write("<h1>lol </h1> ");
break;
case "2":
pw.write("<h1>ow </h1> ");
break;
case "3":
pw.write("<h1>pubg </h1> ");
break;
case "4":
pw.write("<h1>tlbb </h1> ");
break;
}
}
pw.write("<h1>城市:"+city+"</h1>");
}else{
pw.write("<h1>注册失败!</h1>");
pw.write("<h1>两次密码不一致!</h1>");
}
}
点击提交