STS编写一个工作申请表单

1.创建新项目

先创建一个动态的Web项目

这里因为我之前以及创建过这个项目了,所以名字冲突

改一个名字就好,然后点击finish。

之后,我们创建的项目就会出现在这个项目资源管理器里。

2.配置Servlet

右击项目名称,然后创建Servle

同样,我这里报错是因为已经创建过了,你们只要改一下Class name这个选项即可,然后点击finish

创建好的文件可以在这个地方寻找,这个文件是用来处理前端页面发送的数据的

当然,这个地方我们也可以看到这个文件

FormServlet文件初始内容是这样的,dopost函数里存在一个调用doget函数的方法,这是为了避免我们在发送form表单时,method属性设置混乱,所以初始化状态,form表单发送的操作都是在doget函数中进行,当然由于这是我们自己写的代码,所以我们不会搞混

接下来,将箭头指的地方删掉,我们这次的请求要使用post,所以,操作将在这里进行

3.创建HTML文件

右击WebContent文件,然后选择创建一个新的HTML文件

对文件进行命名并点击finish

之后我们将前端代码写到这个创建的文件里,代码如下,需要注意的是,form表单中的属性

action是我们将数据发送的目标地址,所以我们要选择到正确的文件路径下,注意区分大小写,如果路径不对,则会报错

method我们使用post,这个属性决定我们处理数据使用的函数

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"><!-- 规定 HTML 文档的字符编码:-->
    <title>表单小结</title>
  </head>
  <body>
    <h1>申请表</h1>
    <form action="/servletdemo/FormServlet" method="Post">
      <table>
        <tr>
          <td>
            <p>姓名:<input name="xm" type="text" size="20" maxlength="10" /></p>
            <p>密码:<input name="mm" type="text" size="20" maxlength="10" /></p>
            <p>照片:<br /><input name="zp" type="image" value="liulan"
                src="https://ts2.cn.mm.bing.net/th?id=OIP-C.th6FlIUU3ebI8pl4ccYHZgHaEo&w=316&h=197&c=8&rs=1&qlt=90&o=6&dpr=1.3&pid=3.1&rm=2" />
            <p>感兴趣:<br />wb设计:<input name="intersting" type="radio" value="webs" />wb开发:<input name="intersting"
                type="radio" value="webk" /></p>
            <p>向往城市:<select name="city">
                <option value="sh" selected="selected">上海</option>
                <option value="bx" selected="selected">北京</option>
                <option value="sz" selected="selected">深圳</option>
              </select></p>
            <p>协议:<br /><textarea name="xieyi" cols="20" rows="20" readonly>嗨嗨嗨</textarea></p>
            <p><input name="fuxuan" type="checkbox" />我认真阅读并接受以上协议</p>
            <input name="yij" type="submit" value="提交"  />&nbsp;<input name="re" type="reset" />
          </td>
          <td>

          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

 4.编写FormServlet文件

response.setContentType("text/html;charset = UTF-8");

 request.setCharacterEncoding("UTF-8");

这两个函数能让我们返回的页面可以识别中文

getParameter();可以调用request。个体Parameter()方法来获取表单参数的值getParameterValues():如果参数出现一次以上,则调用该方法,并返回多个值,如复选框。
getParameterNames():如果要得到当前请求中的所有参数的完整列表,则调用该方法

需要注意的是,这几个函数调用的参数,也就是识别前端文件中文本框的属性,用的是name,所以参数需要和name属性一致

response.setContentType("text/html;charset = UTF-8");
			request.setCharacterEncoding("UTF-8");
			
			String name = request.getParameter("xm");
			String password = request.getParameter("mm");
//			String photo = request.getParameter("zp");
			String[] hobby = request.getParameterValues("intersting");
			String city = request.getParameter("city");
			
			PrintWriter out = response.getWriter();
			out.println("<p>用户名:"+name+"</p>");
			out.println("<p>密码:"+password+"</p>");
//			out.println("<p>照片:"+password+"</p>");
			out.println("<p>兴趣:");
			for(int i=0 ;i<hobby.length ;i++) {
				out.print(hobby[i]+" ");			
			}
			out.print("</p>");
			out.println("<p>向往城市:"+city+"</p>");

5.运行结果

点击提交按钮,出发submit命令

返还页面

6.常见错误

当我提交表单时,需要注意,单选框中提交的数据不能为空

比如,当我们提交表单时,单选框没有进行选择,就会出现这种情况

如果出现这种404的情况,可以看到,是因为路径错误,无法访问到控制文件

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值