Servlet搭建;

搭建服务器(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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elegant,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值