JavaWeb——day35重定向和登陆注册小案例

编程入门 行业动态 更新时间:2024-10-09 23:21:12

JavaWeb——day35<a href=https://www.elefans.com/category/jswz/34/1771100.html style=重定向和登陆注册小案例"/>

JavaWeb——day35重定向和登陆注册小案例

重定向

概念:可做页面跳转

重定向的特点
  1. 两次请求两次响应
  2. 跳转后页面发生变化
  3. 可以跳转内部也可以跳转外部

请求对象

package org4.westos.demo;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;@WebServlet(name = "Servletdemo41")
public class Servletdemo41 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//重定向:1.请求两次响应两次  2.页面会发生变化  3.可以跳转内部可以跳转外部System.out.println("服务器收到请求");//获取响应状态码response.setStatus(302);//设值响应头response.setHeader("Location","");//以上两句可以合成一句 , 设值页面跳转response.sendRedirect("");response.sendRedirect("/WEB-INT/web.xml");//返回此请求,关联的HttpSession,如果没有当前回话或者参数为true则返回一个新的参数HttpSession session = request.getSession();String id = session.getId();System.out.println(id);session.setAttribute("username","zhangsan");//设值内容Object username = session.getAttribute("username");//取出设值的内容System.out.println(username);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}

请求对象

注解

urlPatterns 和 value 一个意思,都是配置Servlet的虚拟路径

一个虚拟路径只能对应一个Servler
一个Servlet可以对应du多个虚拟路径

//@WebServlet(value = "/demo2")
//@WebServlet("/demo2") //value 也可以省略不写
//一个Servlet 可以有多个映射的虚拟路径
//一个虚拟路径,只能对应一个Servlet
//@WebServlet(value ={"/demo2","/hehe","/haha"})//@WebServlet(value = {"/demo2"})
//@WebServlet(value = "/demo2")
//@WebServlet("/demo2")
//@WebServlet(urlPatterns = {"/demo2", "/hehe"})

Request

概念:请求由服务器创建,管理和销毁
获取请求方法

//总结

String contextPath1 = request.getContextPath();//获取请求路径
String requestURI1 = request.getRequestURI();//获取URI,统一标识符
StringBuffer requestURL1 = request.getRequestURL();//获取URL,统一定位符
String remoteAddr = request.getRemoteAddr();//获取IP地址
String queryString1 = request.getQueryString();//获取请求参数
String protocol1 = request.getProtocol();//获取版本号

package org2.westos.demo;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** @Description:常用的request请求* @Author:@李小白* @Date:2019/9/5 21:40*/
@WebServlet(name = "ServletDemo21" ,value = "demo11")
public class ServletDemo21 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//用request获取信息的一些方法//防止响应乱码,get方法就不要写这句话,写了反而报错response.setContentType("text/html;charset=utf-8");//防止请求乱码request.setCharacterEncoding("utf-8");//获取请求参数String queryString = request.getQueryString();System.out.println(queryString);//获取请求客户端的ipString ip = request.getRemoteAddr();System.out.println(ip);if (ip.equals("192.168.11.123")) {response.getWriter().write("你好呀!");}else{response.getWriter().write("你们好呀!");}//获取协议String protocol = request.getProtocol();System.out.println(protocol);//获取请求路径//URI:统一资源标识符   资源//RUL:统一资源定位符   协议  主机  端口  资源StringBuffer requestURL = request.getRequestURL();String requestURI = request.getRequestURI();System.out.println(requestURI);System.out.println(requestURL);// http://localhost:8080/20190904___war_exploded/demo2//动态获取项目的上下文路径String contextPath = request.getContextPath();System.out.println(contextPath);//获取请求方式String method = request.getMethod();System.out.println(method);//获取请求头String host = request.getHeader("host");String header = request.getHeader("User-Agent");System.out.println(host);System.out.println(header);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}
选择请求体
package org2.westos.demo;import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;/*** @Description:选择请求体* @Author:@李小白* @Date:2019/9/5 22:49*/
@WebServlet(name = "ServletDemo22")
public class ServletDemo22 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求体 post getif (request.getMethod().equals("POST")) {BufferedReader reader = request.getReader();String s = reader.readLine();System.out.println(s);}else if(request.getMethod().equals("GET")){String queryString = request.getQueryString();//获取请求参数System.out.println(queryString);}//上传文件,上传文件后面讲ServletInputStream inputStream = request.getInputStream();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}
获取请求参数
  • 需要截串
package org2.westos.demo;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;/*** @Description:TODO* @Author:@李小白* @Date:2019/9/5 23:18*/
@WebServlet(name = "ServletDemo13")
public class ServletDemo13 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post请求来了");//通用的获取请求参数的值//int read = request.getReader().read();getParmater(request,response);}private void getParmater(HttpServletRequest request, HttpServletResponse response) throws IOException {//判断请求方式String s=null;if (request.getMethod().equals("GET")) {s = request.getQueryString();} else if (request.getMethod().equals("POST")) {s = request.getReader().readLine();}String[] split = s.split("&");String[] split1 = split[0].split("=");System.out.println(split1[0]);System.out.println(split1[1]);String[] split2 = split[1].split("=");System.out.println(split2[0]);System.out.println(split2[0]);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get请求来了");this.doPost(request, response);}
}
  • 不需要截串
package org2.westos.demo;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** @Description:TODO* @Author:@李小白* @Date:2019/9/5 23:33*/
@WebServlet(name = "ServletDemo23")
public class ServletDemo23 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//通用的获取请求参数//tomcat8.0版本以上,get 请求中文不乱码//tomcat8.0版本以上 post 请求中文会乱码//处理post请求 中文乱码request.setCharacterEncoding("utf-8");String username = request.getParameter("username");//键值String password = request.getParameter("password");System.out.println(username);System.out.println(password);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}
登录界面
<%--Created by IntelliJ IDEA.User: 李强娜Date: 2019/8/31Time: 12:39To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><body><%--post请求 是将请求参数,封装到请求体里面--%><form action="/jiemian" method="post">姓名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br>性别:<input type="radio" name="sex" value="1" checked>女<input type="radio" name="sex" value="2" >男<br>爱好:<input type="checkbox" name="hobby" value="sing" checked>唱歌<input type="checkbox" name="hobby" value="dsing" >跳舞<input type="checkbox" name="hobby" value="art" checked>画画<br>学历:<select name="xueli"><option value="xiaoxue">小学</option><option value="xiaoxue">初中</option><option value="xiaoxue">高中</option><option value="xiaoxue">大学</option></select><input type="submit" name="提交"></form></body>
</html>
package org2.westos.demo;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;/*** @Description:jiemian* @Author:@李小白* @Date:2019/9/5 23:33*/
@WebServlet(name = "ServletDemo23",value = "/jiemian")
public class ServletDemo23 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//通用的获取请求参数//tomcat8.0版本以上,get 请求中文不乱码//tomcat8.0版本以上 post 请求中文会乱码//处理post请求 中文乱码request.setCharacterEncoding("utf-8");//获取参数/*   String username = request.getParameter("username");String password = request.getParameter("password");String sex = request.getParameter("sex");//获取爱好,复选框//这个方法就是针对复选框String[] hobbies = request.getParameterValues("hobby");System.out.println(Arrays.toString(hobbies));String xueli = request.getParameter("xueli");System.out.println(username);System.out.println(password);System.out.println(sex);System.out.println(xueli);*///一次性获取表单中所有的内容Map<String, String[]> parameterMap = request.getParameterMap();// System.out.println(parameterMap);Set<Map.Entry<String, String[]>> entries = parameterMap.entrySet();for (Map.Entry<String, String[]> en : entries) {String key = en.getKey();System.out.println(key);String[] value = en.getValue();System.out.println(Arrays.toString(value));}System.out.println("-----------------------");Enumeration<String> parameterNames = request.getParameterNames();//获取所有参数的名称 枚举 不常用 了解while (parameterNames.hasMoreElements()) {String s = parameterNames.nextElement();//System.out.println(s);String parameter = request.getParameter(s);System.out.println(parameter);}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}

更多推荐

JavaWeb——day35重定向和登陆注册小案例

本文发布于:2024-02-27 19:14:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765771.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重定向   案例   JavaWeb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!