1. 编写一个Servlet,当用户请求该Servlet时,显示用户于几点几分从哪个IP(Internet Protocol)地址连线至服务器,以及发出的查询字符串(Query String)。
查询一下ServletRequest或HttpServletRequest的API帮助文档,了解有哪些方法可以使用。

@WebServlet("/hello.view")
public class HelloServlet extends HttpServlet {

  public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {

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

    PrintWriter out = response.getWriter();

    Calendar cal = Calendar.getInstance();

    int hour=cal.get(Calendar.HOUR);//小时

    int minute=cal.get(Calendar.MINUTE);//分

    String remoteIp=request.getRemoteAddr();//获取客户端的ip

    String select=request.getParameter("select");//获取查询语句

    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

    out.println("<HTML>");

    out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

    out.println("  <BODY>");

    out.print("用户在"+hour+"点"+minute+"分,从"+remoteIp+"连接至服务器<br/>");

    out.println("查询字符串为:"+select);

    out.println("  </BODY>");

    out.println("</HTML>");

    out.flush();

    out.close();

  }

}


2. 编写一个应用程序,可以让用户在窗体网页上输入名称、密码,若名称为caterpillar且密码为123456,则显示一个HTML页面响应并有“登录成功”字样,否则显示“登录失败”字样,并由一个超链接连回窗体网页。注意:不可在地址栏上出现用户输入的名称、密码。

个人案例:

第一步,新建Dynamic Web Project名称为FirstServlet,在src下新建Servlet类HelloServlet.java

@WebServlet("/servlet/*")
public class HelloServlet extends HttpServlet {

  public void doPost(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {

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

    PrintWriter out = response.getWriter();

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

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

    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

    out.println("<HTML>");

    out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");

    out.println("<BODY>");

    if("caterpillar".equals(userName) && "123456".equals(password)){

      out.println("登录成功");

    }else{

      out.println("登录失败!<br/>");

      out.println("<a href='../index.jsp'>返回</a>");

    }

    out.println("  </BODY>");

    out.println("</HTML>");

    out.flush();

    out.close();

  }

}

第二步:在web.xml配置欢迎界面,如下

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

第三步:编写index.jsp

<form method="post" action="<%=path%>/servlet/hello.do">
     <table>
       <tr><td>用户名:</td><td><input type="text" name="userName" value=""/></td></tr>
       <tr><td>密码:</td><td><input type="password" name="password" value=""/></td></tr>
       <tr><td><input type="submit" value="登录"/></td><td></td></tr>
     </table>
</form>

第四步:测试,在输入框输入如下地址,填写错误的用户名和密码,出现第二张图的结果

点击返回,这次输入正确的用户名和密码,显示登陆成功

最新文章

  1. Gradle 下载
  2. HDU1020字符串操作
  3. 华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】
  4. pc端页面在移动端显示问题
  5. python3.5学习笔记:linux6.4 安装python3 pip setuptools
  6. 【转】oracle查询用户表,函数,储存过程,
  7. asp.net mvc 设置启动页面在区域中
  8. url结构说明
  9. iOS--隐藏和显示TabBar的方法
  10. NYOJ-2 括号配对问题 -- 数据结构_堆栈
  11. C#通过DllImport引入dll中的C++非托管类(转)
  12. IO流基础
  13. Git命令非主流札记
  14. null undefiend NaN
  15. 终于将 SQL Server 成功迁移至 MySQL8.0 啦!!!
  16. 夜神模拟器调试web APP
  17. VSTS 执行git pull报错问题修复
  18. idea的一些好用的第三方插件
  19. Android -- 贝塞尔曲线公式的推导和简单使用
  20. Codeforces 576D Flights for Regular Customers 矩阵快速幂+DP

热门文章

  1. HPU 1476: 括号括号
  2. flask第30篇——宏macro和import标签
  3. HTML第一课——基础知识普及【2】
  4. 线程池、及使用场景、线程安全封装、ConcurrentHashMap应用场景
  5. Windows 10 子系统 Ubuntu 中安装 FastAdmin
  6. 怎样在两小时内搞定 OpenStack 部署?(转)
  7. jquery实现select二级联动
  8. EF 的一些不常用的功能
  9. java 装饰设计模式模式
  10. python中获取当前路径并添加到系统路径