搭建服务器(Tomcat)为了能够远程访问到
创建web后端项目,在idea中集成Tomcat,并将项目
创建servlet程序 继承HttpServlet init service(dopost doget) destory (接受请求数据:请求头,请求行,请求中自己提交的数据)
package com.ffyc.webback.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class LoginServlet_back1 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("service"); //接收从前端提交的数据 String name=req.getParameter("name"); String age=req.getParameter("age"); System.out.println(name+"::"+age); //与数据库交互次 //响应 resp.setContentType("text/html;charset=UTF-8"); PrintWriter out=resp.getWriter(); out.write("<h2>保存成功</h2>"); } }
package com.ffyc.webback.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.io.Writer; import java.util.Arrays; import java.util.Enumeration; public class LoginServlet extends HttpServlet { //HttpServletRequest请求对象 //HttpServletResponse @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doGet"); String name=req.getParameter("name"); String age=req.getParameter("age"); System.out.println(name+":"+age); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost"); //req.setCharacterEncoding("UTF-8");//设置请求中编码的解码格式 String name=req.getParameter("name"); String age=req.getParameter("age"); String gender=req.getParameter("gender"); String []hobbys=req.getParameterValues("hobby");//接收同名的多个值 System.out.println(name+":"+age+":"+gender+":"+ Arrays.toString(hobbys)); Enumeration<String> ParameterNames= req.getParameterNames(); while (ParameterNames.hasMoreElements()){ System.out.println(ParameterNames.nextElement()); } System.out.println(req.getMethod());// System.out.println(req.getRequestURI());// System.out.println(req.getScheme()); System.out.println(req.getServerName());;//服务端的id System.out.println(req.getServerPort());//服务端的自己端口 System.out.println(req.getProtocol());//协议 System.out.println(req.getRemoteHost());//客户端的地址 System.out.println(req.getRemoteAddr());//客户端的域名或id System.out.println(req.getRemotePort());//客户端的端口 System.out.println(req.getHeader("Content-Type")); System.out.println(req.getHeader("Content-Length")); System.out.println(req.getHeader("User-Agent")); //响应状态码 //404 找到了服务器,未请求到资源 //200请求成功//500 服务器内部错误(代码异常)代码报错没有处理 //302 请求重定向 //400 参数有误,当前请求无法被服务器理解 resp.setHeader("Content-Type","text/html;charset=UTF-8");//设置响应头 PrintWriter writer= resp.getWriter(); writer.write("<h1>你好客户端</h1>");//响应体数据 } }
<html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <!-- get: 超链接请求,地址栏直接访问,向服务端传输数据小 post:表单提交数据 从前端向后端传输数据 --> <a href="http://localhost:8086/webBack/login?name=张三&age=20">访问后端servlet</a> <form action="http://localhost:8086/webBack/login" method="post"> 姓名:<input type="text"/ name="name" value=""/><br /> 年龄:<input type="text"/ name="age" value=""/><br /> 性别:<input type="radio" name="gender" value="男"/>男 <input type="radio" name="gender" value="女"/>女 爱好:<input type="checkbox" name="hobby" value="写代码1"/>写代码1 爱好:<input type="checkbox" name="hobby" value="写代码2"/>写代码2 爱好:<input type="checkbox" name="hobby" value="写代码3"/>写代码3 爱好:<input type="checkbox" name="hobby" value="写代码4"/>写代码4 <input type="submit" value="保存"/>` </form> </body> </html>
过滤器 <!--配置过滤器 --> <filter> <filter-name>encodFilter</filter-name> <filter-class>com.ffyc.webback.filter.EncodFilter</filter-class> </filter> <!--配置进入过滤器的映射地址--> <filter-mapping> <filter-name> encodFilter</filter-name> <url-pattern>/*</url-pattern> <!--配置哪些地址可以进入到当前过滤器--> <!-- <url-pattern>reg</url-pattern> <url-pattern>user</url-pattern>--> </filter-mapping>
public class EncodFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("utf-8"); /*编码过滤器,让进入到过滤器器中的请求,离开当前过滤器,继续向下执行,后一个可能是servlet,也可能是下一个过滤器*/ filterChain.doFilter(servletRequest,servletResponse); } }