美文网首页
基于JavaWeb动态页面的初期优化架构

基于JavaWeb动态页面的初期优化架构

作者: hackywit | 来源:发表于2017-04-28 16:31 被阅读0次

在早期还没提出MVC架构理念,工程师们只是单纯为了使代码的逻辑结构看上去清晰,以及为了编写的效率,引入了JSP文件,JSP的本质依旧是将JSP文件编译为Servlet类,然后再动态加载程序代码。

接下来的代码都采用servlet规范来写,将不再模拟servlet类。

创建第一个JavaWeb应用

servlet规范规定,JavaWeb应用必须采用固定的目录结构

先不使用IDE自己手动编写一个简单的JavaWeb应用

以下是一个最简单的JavaWeb目录结构:


javaweb目录结构.jpg
1.新建一个login.htm文件:
<html>
<head>
<title>helloapp</title>
</head>
<body>
    <form name="loginForm" method="POST" action="dispatcher">
        <table>
            <tr>
                <td><div align="right">User Name:</div></td>
                <td><input type="text" name="username"></td>
            </tr>
            <tr>
                <td><div align="right">Password:</div></td>
                <td><input type="password" name="password"></td>
            </tr>
            <tr>
                <td><input type="submit" name="submit" value="submit"></td>
                <td><input type="reset" name="reset" value="reset"></td>
            </tr>
        </table>
    </form>
</body>
</html>

文件中表单通过action="dispatcher"指定将要跳转到的uri地址:http://182.61.35.14:8000/helloapp/dispatcher

2.新建一个DispatcherServlet类:
package mypack;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class DispatcherServlet extends GenericServlet {
    private String target = "/hello.jsp";

    //响应客户端请求
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        request.setAttribute("USER", username);
        request.setAttribute("PASSWORD", password);
        
        ServletContext context = getServletContext();
        RequestDispatcher dispatcher = context.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }
}

通过RequestDispatcher dispatcher = context.getRequestDispatcher("/hello.jsp");将请求转交给hello.jsp文件处理

//编译命令为
javac -classpath /usr/local/tomcat/lib/servlet-api.jar -sourcepath src -d WEB-INF/classes/ src/mypack/DispatcherServlet.java
4.新建web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee                       http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>mypack.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/dispatcher</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>login.htm</welcome-file>
    </welcome-file-list>
</web-app>

在web.xml中配置DispatcherServlet类与uri的映射,让客户端能够找到它。

4.新建hello.jsp文件:
<html>
  <head>
    <title>helloapp</title>
  </head>
  <body>
    <b>Hello: <%= request.getAttribute("USER") %></b>
  </body>
</html>

通过内嵌的java语句request.getAttribute("USER");获得动态数据,并返回到浏览器显示。

//编译命令为
忘了,网上找一下

相关文章

  • 基于JavaWeb动态页面的初期优化架构

    在早期还没提出MVC架构理念,工程师们只是单纯为了使代码的逻辑结构看上去清晰,以及为了编写的效率,引入了JSP文件...

  • Android项目重构改进优化计划

    一、项目重构基本架构 二、公司的业务重构,按模块划分(业务模块基于基础架构之上) 1. 启动页引导优化(3工作日)...

  • 血战川师实验楼

    总体认识微信公众号:JavaWeb架构师微信公众号:JavaWeb架构师微信公众号:JavaWeb架构师 开始界面...

  • JavaWeb

    JavaWeb使用Java语言开发基于互联网的项目 软件架构c / s : client / server 客户端...

  • 2.1.1HTML

    web概念概述 *JavaWeb:使用Java语言开发基于互联网的项目 *软件架构:1.C/S:Client/Se...

  • iOS架构 - 私有业务架构设计

    基于VIPER架构的设计优化V、I、P层的藕合

  • 2018-10-16

    JavaWeb动态项目目录

  • web概念概述

    javaweb:使用java语言基于互联网的项目 软件架构:c/s:client/server 客户端/服务器端如...

  • MySQL 优化实战记录

    阅读本文大概需要 2 分钟。 背景 本次SQL优化是针对javaweb中的表格查询做的。 部分网络架构图 业务简单...

  • JavaWeb基础(五)-Servlet详解

    这篇文章, 我主要分享JavaWeb动态网页开发.要谈JavaWeb动态网页开发.我们就要来了解Servlet, ...

网友评论

      本文标题:基于JavaWeb动态页面的初期优化架构

      本文链接:https://www.haomeiwen.com/subject/vacazttx.html