mac下用Netbean下编写一个javaservlet

1.新建一个java web project

注:netbean 安装时会询问是否安装tomcat,如果此处没有tomcat,就是安装时未选tomcat。

完成后

2.编写index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Murach‘s Java Servlets and JSP</title>
    <link rel="stylesheet" href="main.css" type="text/css"/>//main.css是配置文件,注意路径
</head>
<body>
    <h1>Join our email list</h1>
    <p>To join our email list, enter your name and
       email address below.</p>
 <form action="EmailListServlet" method="post">
        <input type="hidden" name="action" value="add">

        <label>Email:</label>
        <input type="email" name="email" required><br>

        <label>First Name:</label>
        <input type="text" name="firstName" required><br>

        <label>Last Name:</label>
        <input type="text" name="lastName" required><br>

        <label>&nbsp;</label>
        <input type="submit" value="Join Now" id="submit">
    </form>
</body>
</html>

3.编写main.css

body {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    margin-left: 2em;
    margin-right: 2em;
}
h1 {
    color: teal;
}
label {
    float: left;
    width: 6em;
    margin-bottom: 0.5em;
}
input[type="text"], input[type="email"] {
    width: 15em;
    margin-left: 0.5em;
    margin-bottom: 0.5em;
}
br {
    clear: both;
}
#submit {
    margin-left: 0.5em; }

3.两个java文件

EmailListServlet.java 和User.java

package murach.email;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import murach.business.User;
//import murach.data.UserDB;

public class EmailListServlet extends HttpServlet  {

    @Override
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response)
                          throws ServletException, IOException {

        String url = "/index.html";

        // get current action
        String action = request.getParameter("action");
        if (action == null) {
            action = "join";  // default action
        }
        // perform action and set URL to appropriate page
        if (action.equals("join")) {
            url = "/index.html";    // the "join" page
        }
        else if (action.equals("add")) {
            // get parameters from the request
            String firstName = request.getParameter("firstName");
            String lastName = request.getParameter("lastName");
            String email = request.getParameter("email");

            // store data in User object and save User object in db
            User user = new User(firstName, lastName, email);
           // UserDB.insert(user);

            // set User object in request object and set URL
            request.setAttribute("user", user);
            url = "/thanks.jsp";   // the "thanks" page
        }

        // forward request and response objects to specified URL
        getServletContext()
            .getRequestDispatcher(url)
            .forward(request, response);
    }
 @Override
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response)
                         throws ServletException, IOException {
        doPost(request, response);
    }
}
package murach.business;

import java.io.Serializable;

public class User implements Serializable {
    private String firstName;
    private String lastName;
    private String email;

    public User() {
        firstName = "";
        lastName = "";
        email = "";
    }

    public User(String firstName, String lastName, String email) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
    }
 public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

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>EmailListServlet</servlet-name>
        <servlet-class>murach.email.EmailListServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>EmailListServlet</servlet-name>//要到EmailListServlet这个java文件中去寻找
        <url-pattern>/EmailListServlet</url-pattern>//需要找到EmailListServlet这个方法
    </servlet-mapping>

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
<welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

5.thanks.jsp

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Murach‘s Java Servlets and JSP</title>
    <link rel="stylesheet" href="main.css" type="text/css"/>
</head>

<body>
    <h1>Thanks for joining our email list</h1>

    <p>Here is the information that you entered:</p>

    <label>Email:</label>
    <span>${user.email}</span><br>
    <label>First Name:</label>
    <span>${user.firstName}</span><br>
    <label>Last Name:</label>
    <span>${user.lastName}</span><br>
<p>To enter another email address, click on the Back
    button in your browser or the Return button shown
    below.</p>

    <form action="" method="get">
        <input type="hidden" name="action" value="join">
        <input type="submit" value="Return">
    </form>

</body>
</html>

6.文件分布如图

注:web.xml文件必须在WEB-INF这个文件夹下,不然点击submit后会报错。

7.运行结果

时间: 2024-10-25 06:16:44

mac下用Netbean下编写一个javaservlet的相关文章

手把手教你编写一个简单的PHP模块形态的后门

看到Freebuf 小编发表的用这个隐藏于PHP模块中的rootkit,就能持久接管服务器文章,很感兴趣,苦无作者没留下PoC,自己研究一番,有了此文 0×00. 引言 PHP是一个非常流行的web server端的script语言.目前很多web应用程序都基于php语言实现.由于php是个开源软件并易于扩展,所以我们可以通过编写一个PHP模块(module 或者叫扩展 extension)来实现一个Backdoor. 本文就简单介下如何一步步编写一个简单的php 动态扩展后门. 0×01. p

编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad

1.编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad package copy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; i

mac os 10.10下 openfire启动失败的问题记录

mac os 10.10下 openfire启动失败的问题记录 主要原因是在openfire 看了一些资料综合一下然后做一个记录 A.ctrl+空格=>终端 B.建议先获取文件夹权限 sudo chmod -R 777 /usr/local/openfire/bin C.然后再一行一行执行下面的命令 sudo sucd /usr/local/openfire/binexport JAVA_HOME=`/usr/libexec/java_home`echo $JAVA_HOME /Library/

Win64下集成RadASM+nasm编写操作系统

这个标题有点唬人,我只是在看<自己动手写操作系统>的第二版<ORANGE'S:一个操作系统的实现>.作者喜欢命令行,我喜欢IDE.我尝试在RadASM下实现了第一个例子的编译与载入,觉得还不错.RadASM默认只支持用Nasm开发win32应用程序,而写操作系统需要生成bin文件,只能自己修改配置来实现.本着瞎折腾的精神,我就折腾了一个nasm.ini,注意我将32位的nasm编译器放到了安装目录下的Nasm32目录中,所以写了一句$A=$R\Nasm32,读者请自行替换.[Des

mac 10.9.4下配置apache

mac 10.9.x已经自带了apache,可按如下步骤开启: 1.启动 sudo apachectl start 启动后,访问 http://localhost/ 应该能看到"It works!"的初始页面,如果对初始页面的内容感到好奇,可以打开"/etc/apache2/httpd.conf",197行可以看到如下代码片段: 1 <Directory "/Library/WebServer/Documents"> 2 # 3 #

linux下动态库的编写和调用

linux下动态库的编写和调用 linux下编写和调用一个简单的动态库大概分为以下几个步骤: - 创建动态库程序文件 add.c int add(int a,int b) { return a+b; } 创建引用头文件 head.c #ifndef _HEAD_ #define _HEAD_ int add(int a,int b); #endif 生成目标文件 生成要加编译器选项 -fpic gcc -fpic -c add.c 然后生成动态库 注意使用链接器选项 -shared gcc -s

windows下注册表脚本编写

Reg文件就是我今天所说的注册表脚本文件,双击可将其中的数据写入注册表.利用注册表脚本文件可以对注册表进行关于键值的任何操作,而且还不受注册表被禁用的限制.     我们平常对注册表的修改大体上可以分为两种:     1.对注册表子键的修改;     2.对子键下的键值的修改;     下面依次对这两种修改做个简略的介绍.    一,对子键的修改(1)添加子键     操作:只需在主体文件部分加入"[ ]"即可     例如:在HKEY_CURRENT_USER/Software下添加

Mac OS10.9.2下的eclipse C++开发环境配置

需要的软件: 1.eclipse C/C++版本 2.Xcode 3.gdb 1.安装eclipse任意一个C/C++版本 2.安装Xcode,Xcode中有C++的编译器 3.安装gdb 官网下载地址:ftp://sourceware.org/pub/gdb/releases/ 下载之后运行打开Terminal的gdb的解压后的目录下,输入以下命令安装: ./Configure make make install 4.因为直接用gdb调试的话,会出现没有权限的情况,因此需要制作一个keycha

mac多屏幕情况下dock使用技巧

mac不能对各屏幕分配一个dock,但是有一个折衷文案.即dock可以呼唤到当前屏幕上来. 前提条件: dock置于屏幕上的位置必须是底部.左侧和右侧会无效. 操作方法: 将光标拖到当前屏的最下方(边线处),略停顿,再有一个向下拖动动作,即触发. dock出现到当前屏幕的底部.