不使用框架来发送数据到服务器后台
2017-03-26 15:27
246 查看
背景
因为这学期学校有JavaEE的课,第一个大作业就是不使用框架来写一个管理系统。昨晚开始通宵写到今天早上八点半,还是学了很多东西的。系统需求
这里为了简单,就向服务器发送一个表单吧!使用两种提交方式,一种是使用表单提交,另外一种是ajax提交。开发工具:eclipse
服务器:tomcat
基本架构搭建
首先新建一个动态的Web工程。开始写前台页面,代码如下:
<form action="user/adduser" method="post"> 用户姓名:<input type="text" name="username"/><br/><br/> 用户密码:<input type="password" name="password"/><br/><br/> <input type="submit" value="新增" /> </form>
有一点html基础的人都能看懂这个代码,就是两个输入框,一个新增按钮。
表单的提交地址是
adduser,提交方式为
post。
然后写一个后台的控制器,取名就叫
UserController:
import java.io.IOException; import java.util.Date; import java.util.Map; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UserController extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) { //处理前台传过来的数据 } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub super.doGet(req, resp); } }
注意:如果没有servlet包,记得在build path那里加入tomcat中相关的包。
最后就是怎样把前后台关联起来呢?
这个就叫在 web.xml 中进行配置了!
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" id="WebApp_ID" version="2.5"> <!--配置servlet --> <servlet> <servlet-name>UserController</servlet-name> <servlet-class>com.user.controller.UserController </servlet-class> </servlet> <servlet-mapping> <servlet-name>UserController</servlet-name> <url-pattern>/user/adduser</url-pattern> </servlet-mapping> </web-app>
上面就将前后台关联起来了!
我们点击一下前台页面的按钮,发现请求连通了:
开始编程
前台form表单提交数据
因为是表单提交,所以点击一下按钮就把数据传给后台了。后台获取数据
那么后台要怎样获取数据呢?答案就是从request中获取了。
那么要怎样获取呢,这里我封装了一个工具类,将
request映射成一个Map。
package com.user.utils; import java.io.UnsupportedEncodingException; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; /** * 作者:白芷 * 时间:2017/03/26 * 功能:将request装转化为Map键值对 * */ public class CastRequestToMap { public static Map castRequestToMap(HttpServletRequest request){ try { request.setCharacterEncoding("UTF-8"); //设置编码 } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } Map map = new HashMap(); Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = (String) paramNames.nextElement(); String[] paramValues = request.getParameterValues(paramName); if (paramValues.length == 1) { String paramValue = paramValues[0]; if (paramValue.length() != 0) { map.put(paramName, paramValue); } } } return map; } }
这里你把
request传过去就可以获取一个map了。
那我们来使用这个工具类来打印一下前台传过来的数据:
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) { //处理前台传过来的数据 Map map=CastRequestToMap.castRequestToMap(request); Set<Map.Entry<String, String>> set = map.entrySet(); System.out.println("------------------------------"); for (Map.Entry entry : set) { System.out.println(entry.getKey() + ":" + entry.getValue()); } System.out.println("------------------------------"); }
前台输入 张三 123456
后台打印:
表明我们的前后台数据传输成功!接下来你就可以对你的数据进行你想要的处理了!
2017/03/27日添加
看到一个朋友舍弃了 web.xml,改用注解来实现寻找路径。
上面的控制器程序就可以加上注解,如下:
@WebServlet(urlPatterns="/user/adduser") public class UserController extends HttpServlet { //内容省略 }
相关文章推荐
- Ajax---发送参数:使用JSON替代XML向服务器发送数据
- ExtJs使用Array向后台发送大量数据
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- 使用post()方法以POST方式从服务器发送数据
- Android以后台Service的方式获取GPS数据,并定时发送到服务器
- Android使用HttpPost向服务器发送Json数据
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android开发使用POST方式向服务器请求和发送数据
- 使用开源框架android-async-http-1.4.8.jar与服务器传输数据
- ExtJS使用Array向后台发送大量数据
- 使用apache的TelnetClient实现java向telnet服务器发送命令并显示数据(解决乱码问题)
- 使用curl库,以post方式向服务器发送json数据
- Android使用HttpUrlConnection请求服务器发送数据详解
- Ajax - 使用JSON向服务器发送数据
- extjs 4 chart 使用 后台发送的json数据画图
- Socket —>AsyncSocket(ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收)
- 使用 Socket 类向 HTTP 服务器发送数据和接收响应。
- Android使用HttpPost向服务器发送Json数据
- Android使用HttpUrlConnection请求服务器发送数据详解