java httpservelet_Java的HttpServletRequest

1、HttpServletRequest

(1)获得请求行:

method:getMethod();POST/GET;

URI:getRequestURI();可以是网址可以是相对地址也可以是绝对地址;

URL:getRequestURL();只能是网址;

重要:WEB应用名称:getContextPath();应用于重定向;

url后面的字符串:只适用于get方式;post方式没有;getQueryString();

IP:可以获取IPv4或者是IPv6;getRemoteAddr();

login.jsp用户名:
密码:

鼓励企业家

packagecom.oracle.web;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class LineServlet extendsHttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

response.setContentType("text/html;charset=UTF-8");//获取请求方式

String method =request.getMethod();//获取请求资源

String URI =request.getRequestURI();

StringBuffer URL=request.getRequestURL();//获取WEB应用名称

String webname =request.getContextPath();//获取url后面的字符串(get方式)

String str =request.getQueryString();//获取客户端的请求ip

String IP =request.getRemoteAddr();

System.out.println("请求方式"+method);

System.out.println("URI"+URI);

System.out.println("URL"+URL);

System.out.println("WEB名称"+webname);

System.out.println("url后面的字符串"+str);

System.out.println("请求IP"+IP);

response.getWriter().write("hello world!");

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

doGet(request, response);

}

}

830bac35948afaebcc9f1a59e623bd3a.png

9a3497986ca4a2d4cd908a9d3ac795a7.png

ac316e4750ce49074e41bddb9d94e303.png

(2)获得请求头:

重要:getHeader("referer");用于做防盗链

packagecom.oracle.web;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class ReferServlet extendsHttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

response.setContentType("text/html;charset=UTF-8");//获取请求头中的referer

String referer = request.getHeader("referer");if(referer !=null&&referer.startsWith("http://localhost")){

response.getWriter().write("hello world!");

}else{

response.getWriter().write("你好世界");

}

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

doGet(request, response);

}

}

cb6aaa31cbebe35fe77a15968b1aee82.png

但是:

95733e2c33f089a4382fc408737b4095.png

(3)获得请求体:

获得单个参数:getParameter("name");

获得多个参数:Map getParameterMap();键值对

Insert title here用户名:
密码:
爱好:足球乒乓球篮球羽毛球

packagecom.oracle.web;importjava.io.IOException;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Set;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class BodyServlet extendsHttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//get方式解决中文乱码

String username = request.getParameter("username");

String password= request.getParameter("password");

System.out.println(username+"..."+password);//获取表单所有元素的值//hobby,{zq,ppq,lq,ymq}

Map map =request.getParameterMap();

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

response.getWriter().write("hello world!");/*Set set = map.keySet();//hobby只有一个hobby

//增强for(变量类型:容器标识)

for (String s : set) {

String key = s;

String[] value = map.get(key);

for(String s1:value){

System.out.println(s+".."+s1);

}

}*/Set> set =map.entrySet();for(Entrys:set){for(String str:s.getValue()){

System.out.println(s.getKey()+"..."+str);

}

}

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

doGet(request, response);

}

}

e7fd985e0d7a8a36999bcd05bcbf10af.png

2a408ded60bccc50e46bee4d792b3841.png

74521a3f359a512225fafd773b1bd733.png

(4)中文乱码:

解决post提交方式的乱码:request.setCharacterEncoding("UTF-8");

解决get,post提交的方式的乱码:只能作用一个,用一个写一个;

parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");

1dc4effd0fee6a8ad0b0a8dce6ccd884.png

(5)request是一个域对象,作用范围:

一次请求中;访问时创建,响应结束时request销毁;

(6)请求转发:

getRequestDispatcher("/Servlet01")不用写项目名字;

requestDispathcer.forward(ServletRequest request, ServletResponse response);

packagecom.oracle.web01;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class Servlet01 extendsHttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

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

request.setAttribute("name", "西红猫");//请求转发

request.getRequestDispatcher("/Servlet02").forward(request, response);

response.getWriter().write("你好世界!");

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

doGet(request, response);

}

}

packagecom.oracle.web01;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class Servlet02 extendsHttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

String name= (String)request.getAttribute("name");

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

response.getWriter().write("hello world!"+name);

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

doGet(request, response);

}

}

4158ec822fc2ac2df2b4ef7b8f547c83.png

ceaecdb4aaa3cb38454df64ab3ff4735.png

当改变时:

packagecom.oracle.web01;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class Servlet01 extendsHttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

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

request.setAttribute("name", "西红猫");//请求转发

/*request.getRequestDispatcher("/Servlet02").forward(request, response);*/response.getWriter().write("你好世界!");

}public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

doGet(request, response);

}

}

c06e9d5a92b4a9c9bdece6cb74187645.png

(7)重定向和请求转发区别:

重定向两次请求,转发一次请求;

重定向地址栏地址变化,转发地址不变;

重定向可以访问外部网站,转发只能访问内部资源

转发的性能要优于重定向;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微信小程序带servlet后台源码指的是在微信小程序中使用Java Servlet作为后台来处理业务逻辑的源代码。 一个简单的示例是使用Spring Boot搭建一个Java Servlet的后台服务,并提供相关的API接口给微信小程序调用。以下是一个可能的源码示例: 1. 首先,创建一个Spring Boot项目,并添加相关的依赖,如Spring Web和JDBC。 2. 创建一个用于处理微信小程序请求的Servlet类,可以继承自HttpServlet,并重写doGet和doPost方法来处理GET和POST请求。 3. 在Servlet类中,可以通过HttpServletRequest来获取微信小程序发送的请求参数,并通过HttpServletResponse来返回响应给微信小程序。 4. 在Spring Boot的配置文件中,配置数据库连接和相关的业务逻辑。 5. 在后台处理逻辑中,可以根据微信小程序发送的请求参数来进行相应的业务处理,如查询数据库并返回查询结果,添加新的数据等。 6. 在Controller类中,使用@RestController注解来定义接口的URL路径和请求方法,并使用@Autowired注解来将Servlet类注入进来,从而调用Servlet类中的处理逻辑。 通过以上步骤,我们可以实现微信小程序与Java Servlet后台的交互。微信小程序可以发送请求到后台的API接口,并获取到后台返回的数据。 需要注意的是,以上只是一个简单的示例,实际的后台源码需要根据具体的业务逻辑和需求进行编写和调整。同时,还需要根据具体的开发环境和要求来进行相应的配置和部署。 ### 回答2: 微信小程序的后台是通过开发者自己搭建的服务器来实现的,可以选择使用Java语言编写Servlet后台。下面是一个示例的微信小程序带Servlet后台的源码: 1. 首先,在服务器上搭建好Java开发环境,如Tomcat服务器。 2. 创建一个Java文件,命名为WeChatServlet.java。该文件用来处理小程序发来的请求并返回相应的数据。 ```java import java.io.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; @WebServlet("/wechat") public class WeChatServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理GET请求 response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h2>欢迎使用微信小程序后台</h2>"); out.println("</body></html>"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理POST请求 request.setCharacterEncoding("UTF-8"); response.setContentType("application/json;charset=UTF-8"); PrintWriter out = response.getWriter(); // 在这里编写处理小程序请求的业务逻辑 // 返回JSON数据给小程序 String result = "{\"status\":\"success\", \"message\":\"请求成功\"}"; out.println(result); } } ``` 3. 编译并将WeChatServlet.class文件放置到Tomcat服务器的webapps目录下的相应位置。 4. 启动Tomcat服务器,确保Tomcat能够监听到指定的端口。 5. 在微信小程序的代码中,向服务器发送请求,并处理返回的数据。示例代码如下: ```javascript wx.request({ url: 'http://yourdomain.com/wechat', method: 'POST', data: { // 在这里添加请求的数据 }, success: function(res) { console.log(res.data); // 在这里处理服务器返回的数据 }, fail: function(error) { console.log(error); } }) ``` 以上就是一个简单的微信小程序带Servlet后台的源码示例。开发者可以根据自身需求在WeChatServlet.java文件中编写具体的业务逻辑。同时,还需要注意配置好服务器和小程序之间的通信,如跨域问题等。 ### 回答3: 微信小程序带Servelet后台源码指的是在微信小程序中使用Servelet技术实现后台接口的源代码。 Servelet是Java技术中的一种用于处理网页请求和响应的标准规范。微信小程序可以通过后台Servelet代码,与服务器进行数据交互,实现一些复杂的业务逻辑。 在小程序中使用Servelet后台源码,首先需要搭建一个Java环境,例如Tomcat服务器。然后创建一个Servelet类,编写对应的业务逻辑。这个Servelet类可以处理来自小程序的请求,并返回相应的数据。 在具体实现上,可以使用Java的IDE工具,如Eclipse或IntelliJ IDEA来编写Servelet代码。通过创建Servelet类,继承HttpServelet类,并实现doGet()和doPost()方法来处理GET和POST请求。在这些方法内,可以编写与小程序交互的逻辑,如获取用户输入的数据、进行数据库操作等。 为了与小程序进行通信,我们可以使用微信提供的API,在小程序端发送请求,并将数据发送给后台Servelet。而Servelet则通过获取请求参数、进行数据处理和返回处理结果给小程序。 需要注意的是,为了保护数据传输的安全性,可以对数据进行加密、签名验证等处理。此外,需要在小程序的配置文件中填写Servelet的地址和端口号。 总结起来,微信小程序带Servelet后台源码指的是使用Servelet技术实现了后台接口的源代码,通过该源码可以与小程序进行数据交互,实现一些更复杂的业务逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值