JavaWeb学习系列——第一个JavaWeb程序
Posted 静水流深
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb学习系列——第一个JavaWeb程序相关的知识,希望对你有一定的参考价值。
创建JavaWeb项目
Eclipse中新建一个Dynamic Web Project
指定项目名称、依赖环境
勾选生成web.xml选项
更改项目编译输出目录,项目右键 ->properties ->Java Build Path ->source ->Default output folder,修改为JavaWeb01/WebContent/WEB-INF/classes
在WebContent文件夹下新建一个index.jsp文件,修改其代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JavaWeb01</title> </head> <body> <% String name = request.getParameter("name"); out.print("欢迎" + name +" 第一个JavaWeb程序"); %> </body> </html>
OK了,发布测试一下
创建Servlet实例
新建Servlet文件
指定包名称、类名称
修改HelloServlet.java 代码如下:
package com.lock.test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class HelloServlet */ @WebServlet("/HelloServlet") public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HelloServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //处理中文 String name = new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8"); response.setCharacterEncoding("UTF-8"); response.getWriter().write("欢迎" + name + " HelloServlet 第一个Servlet程序"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
修改/WebContent/WEB-INF/web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>JavaWeb01</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <!-- servlet应用名称 --> <servlet-name>HelloServlet</servlet-name> <!-- servlet应用名称对应的具体servlet文件 --> <servlet-class>com.lock.test.HelloServlet</servlet-class> </servlet> <!-- 地址映射 --> <servlet-mapping> <!-- servlet应用名字 --> <servlet-name>HelloServlet</servlet-name> <!-- 访问的网址 --> <url-pattern>/helloservlet</url-pattern> </servlet-mapping> </web-app>
编译项目后,在Tomcat下发布测试
JSP运行原理简释
- 只有当客户端第一次请求JSP时,才需要将其转换、编译(所以第二次浏览同样的网页时,速度会更快)。
- Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。
- 程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。
- 所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。
在Tomcat的work目录下,可看到该项目编译后的结果文件。
实际上,jsp文件转为java servlet(本质就是Java文件),然后再把java文件编译为class文件,最终执行的是class文件。
以上是关于JavaWeb学习系列——第一个JavaWeb程序的主要内容,如果未能解决你的问题,请参考以下文章