Servlet Tomcat

问题: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方法语句
在这里插入图片描述

name com.project.servlet.IndexServlet name /index

这个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>");
			  }
		  }

在这里插入图片描述

点击提交
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39263750/article/details/89330632