JavaWeb笔记(一)
一、获取添加应用参数
写一个继承HttpServlet的类,加@WebServlet()注解
设置响应内容类型
resp.setContentType("text/html;charset=utf-8");
直接返回HTML页面
PrintWriter printWriter = resp.getWriter();
printWriter.write("<div>get小滴课堂<div>");
web.xml中添加key-value
<context-param>
<param-name>url</param-name>
<param-value>xdclass.net</param-value>
</context-param>
<context-param>
<param-name>username</param-name>
<param-value>jack</param-value>
</context-param>
获取web.xml中添加的数据
ServletContext servletContext = req.getServletContext();
//拿到xml中定义的context参数
String url = servletContext.getInitParameter("url");
System.out.println(url);
在Servlet中直接添加数据和获取
//UerServlrt
ServletContext servletContext = req.getServletContext();
servletContext.setAttribute("appInfo","xdclass.net info");
//=========================================================
//TestServlet
String value = (String)req.getServletContext().getAttribute("appInfo");
System.out.println("appInfo="+value);
二、HttpServletRequest请求
JSP的使用
1、导入依赖
2、在body中加JSP语法
HttpServletRequest
HttpServletRequest代表浏览器客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,通过这个对象提供的⽅法可以获得请求的所有信息。
常用api
http://127.0.0.1:8080/request?userName=jack&age=11&sport=ball&sport=sleep
//客户端请求信息
System.out.println("应⽤上下⽂路径getContextPath="+request.getContextPath());
System.out.println("客户端发出请求时的完整URL
getRequestURL="+request.getRequestURL()) ;
System.out.println("请求⾏中的资源名部分
getRequestURI="+request.getRequestURI()) ;
System.out.println("请求⾏中的参数部分
getQueryString="+request.getQueryString()) ;
System.out.println("发出请求的客户机的IP地址
getRemoteAddr="+request.getRemoteAddr()) ;
System.out.println("客户机发请求使⽤的⽹络端⼝号
getRemotePort="+request.getRemotePort()) ;
//获取请求头
System.out.println("获取请求头
getHeader(Accept)="+request.getHeader("Accept")) ;
//获取请求参数
System.out.println("客户端请求参数
getParameter="+request.getParameter("userName"));
String[] sport = request.getParameterValues("sport");
System.out.println("客户端请求参数列表,多个值
getParameterValues="+sport.toString());
Map<String,String[]> map = request.getParameterMap();
System.out.println("客户端请求参数封装成的map类型
getParameterMap="+map.toString());
三、表单提交
写一个表单
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<div>xxxxx</div>
<form action="/user1" method="post">
<div>用户名:<input type="text" name="userName" /></div>
<div>密码:<input type="password" name="pwd"></div>
<div> <input type="submit" value="登录"></div>
</form>
</body>
</html>
UserServlet类中重写doPost方法判断
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
//拿到表单提交(req)的参数
String userName = req.getParameter("userName");
String pwd = req.getParameter("pwd");
if (userName.equals("xxxx")&& pwd.equals("1234")){
resp.getWriter().write("成功登录");
}else {
resp.getWriter().write("登录失败");
}
}
getOutputStream():
创建的字节输出流对象,可以按字节形式输出响应正⽂,直接输出字节数组中的⼆进制数据
getWriter():
创建的字符输出流对象,可以按字符形式输出响应正⽂,只能输出输出字符⽂本内容,和上⾯的互斥