Servlet

2018年1月4日15:54:06

 

 

第一段讲课内容


先新建一个类 继承接口
package com.bdqn.svl;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//继承接口 重写doGet和doPost这两个方法
public class ServletInstant extends HttpServlet{
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  //super.doGet(req, resp);
  req.setCharacterEncoding("UTF-8");//设置编码格式
  resp.setCharacterEncoding("UTF-8");//设置编码格式
  PrintWriter pw=resp.getWriter();//获得输出
  pw.write("<h1>前任</h1>");//在页面写出不是控制台
 }
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  //super.doPost(req, resp);
  this.doGet(req, resp);//这是让doPost转去doGet那里


 }
}

 

 

 


web.xml加上两段<servlet>和<servlet-mapping>
  <servlet>


   <servlet-name>取别名servletIns</servlet-name>


   <servlet-class>包名.类名com.bdqn.svl.ServletInstant</servlet-class>


   <init-param>//根据键值设置编码格式
    <param-name>charset</param-name>
    <param-value>UTF-8</param-value>
   </init-param>
  </servlet>

 

  <servlet-mapping>
   <servlet-name>上面取的别名servletIns</servlet-name>
   <url-pattern>一斜杠/上面取的别名/servletIns</url-pattern>
  </servlet-mapping>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name> 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二段讲课内容


index.jsp页面写一个表单 提交到servlet

    <form action="servletIns取的别名" method="post">
     用户名:<input type="text" name="uName">
     密码:<input type="password" name="uPwd">
     <input type="submit" value="提交">
    </form>

然后到ServletInstant 的doget方法
  req.setCharacterEncoding("UTF-8");
  resp.setCharacterEncoding("UTF-8");
  PrintWriter pw=resp.getWriter();
  //pw.write("<h1>前任qianren</h1>");
  //解决编码
  resp.setContentType("text/html;Charset=UTF-8");
  String uNa=req.getParameter("uName");
  String uPw=req.getParameter("uPwd");
  if (uNa.equals("张三")&&uPw.equals("123")) {
   pw.write(uNa+"</br>"+uPw);
  }else {
   pw.write("erro");
  }
  pw.flush();//刷新缓冲区以后肯定为空的
  if(pw!=null){pw.close();}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


第三段讲课内容


 在<servlet>里加上一段解决编码格式的 发现好像不起作用 其实就是个键值
  <init-param>
   <param-name>charSet</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
在里ServletInstant类重写init方法在控制台输出 看能不能根据键获得值
 @Override
 public void init(ServletConfig config) throws ServletException {
  // TODO Auto-generated method stub
  //super.init(config);
  String charSet=config.getInitParameter("charSet");
  System.out.println(charSet);

//是在控制台输出UTF-8
 }

 

 

 

 

 

 

 

 

 

第四段讲课


全局
先去web.xml设置一个全局变量 要获得这个电话一定要注释初始化方法 不然会空指针
还有一个不会爆空指针的是init这个方法里这一句一定要有super.init(config);
 @Override
 public void init(ServletConfig config) throws ServletException {
  // TODO Auto-generated method stub
  super.init(config);
  //String charSet=config.getInitParameter("charSet");
  //System.out.println(charSet);

//是在控制台输出
 }

 

 

 <context-param>
  <param-name>name</param-name>
  <param-value>adminI参数名有红色波浪线就取个不一样的试试</param-value>
 </context-param>

ServletInstant页面根据键拿到值
doGet方法
  //根据键拿到值 全局的那个adminI 注意输出的不是页面里 而是控制台
  String name="拿不到";
  name=getServletContext().getInitParameter("name");
  System.out.println(name);

//是在控制台输出 参数名偶红色波浪线就取个不一样的试试

 

 

 

 

 

 

 

 

这一天课的所有代码


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <display-name></display-name>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>


 <context-param>
  <param-name>name</param-name>
  <param-value>adminI</param-value>
 </context-param>


 <servlet>

<!--取别名-->
  <servlet-name>servletIns</servlet-name>

<!--全包名.类名-->
  <servlet-class>com.bdqn.svl.ServletInstant</servlet-class>


  <init-param>
   <param-name>charSet</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </servlet>


 <servlet-mapping>

<!--上面取的别名-->
  <servlet-name>servletIns</servlet-name>

<!--路径.上面去的别名 看能不能跳转-->
  <url-pattern>/servletIns</url-pattern>
 </servlet-mapping>


</web-app>

 

 

 

 


index.jsp

 

 

  <body>
  <%
   request.setCharacterEncoding("UTF-8");
   response.setCharacterEncoding("UTF-8");
  %>
    This is my JSP page. <br>
    <h6>主页</h6>
    <form action="servletIns" method="post">
     用户名:<input type="text" name="uName">
     密码:<input type="password" name="uPwd">
     <input type="submit" value="提交">
    </form>
  </body>

 

 

 

 

 

 

 

 

ServletInstant类

 

 

package com.bdqn.svl;

import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletInstant extends HttpServlet{
 @Override
 public void init(ServletConfig config) throws ServletException {
  // TODO Auto-generated method stub
  super.init(config);
  //String charSet=config.getInitParameter("charSet");
  //System.out.println(charSet);
 }
 
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  //super.doGet(req, resp);
  req.setCharacterEncoding("UTF-8");
  resp.setCharacterEncoding("UTF-8");
  PrintWriter pw=resp.getWriter();
  //pw.write("<h1>前任qianren</h1>");
  resp.setContentType("text/html;Charset=UTF-8");
  String uNa=req.getParameter("uName");
  String uPw=req.getParameter("uPwd");
  if (uNa.equals("张三")&&uPw.equals("123")) {
   pw.write(uNa+"</br>"+uPw+"</br>");
   pw.write("right");
   //pw.write("对的");
  }else {
   pw.write("erro");
   //pw.write("错的");
  }
  pw.flush();
  if(pw!=null){pw.close();}
  //根据键拿到值 全局的那个adminI 注意输出的不是页面里 而是控制台
  String name="拿不到";
  name=getServletContext().getInitParameter("name");
  System.out.println(name);
 }
 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  //super.doPost(req, resp);
  this.doGet(req, resp);
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值