基于Jsp+Servlet+JavaBean的个人网站系统

设计一个Web系统,主题明确,使用文件存储数据,实现注册、登陆、查询功能;语言采用java开发,使用Jsp+Servlet+JavaBean模式进行系统设计,网页中包含表单内容,关键代码加注释

1.创建JavaBean类
可以创建一个Java类,用于存储用户的注册信息和登陆信息。这个类应该包含用户名、密码、邮箱地址等信息。

例如:

public class User {
  private String username;
  private String password;
  private String email;

  // getters and setters
}

2.创建JSP页面
需要创建一些JSP页面,包含注册、登陆和查询表单。例如,注册表单可以包含用户名、密码、邮箱地址等输入框。

在JSP页面中,可以使用HTML表单标签来创建表单,并使用JSP表达式来设置表单的提交地址。

例如:

<form action="register" method="post">
  <label>Username:</label><br>
  <input type="text" name="username"><br>
  <label>Password:</label><br>
  <input type="password" name="password"><br>
  <label>Email:</label><br>
  <input type="email" name="email"><br>
  <input type="submit" value="Submit">
</form>

3.创建Servlet类
你需要创建一个Servlet类,用于处理表单提交的数据,并进行逻辑处理和数据存储。

在Servlet中,你可以使用doGet或doPost方法来处理客户端的请求。你可以使用request.getParameter方法来获取表单中的数据,并使用JavaBean来存储这些数据。
例如:

public class RegisterServlet extends HttpServlet {
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String email = request.getParameter("email");

    User user = new User();
    user.setUsername(username);
    user.setPassword(password);
    user.setEmail(email);

    // 将用户信息存入文件或数据库中
  }
}

4.配置Servlet并映射到对应的URL地址
在web.xml文件中,需要配置Servlet并映射到对应的URL地址。例如,可以将上面的Servlet映射到/register路径。
例如:

<servlet>
  <servlet-name>register</servlet-name>
  <servlet-class>com.example.RegisterServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>register</servlet-name>
  <url-pattern>/register</url-pattern>
</servlet-mapping>

5.在Servlet中实现注册、登陆和查询功能
在Servlet中,可以根据请求的URL地址来判断用户需要进行的操作,并实现相应的功能。例如,如果用户访问的是/register路径,可以调用doPost方法来处理注册功能。

6.使用JavaBean存储和获取用户信息
可以在Servlet中使用JavaBean来存储和获取用户的信息。例如,可以使用JavaBean来存储注册用户的信息,然后在登陆时使用JavaBean来获取用户的信息并进行验证。
7.使用JSP页面生成响应的HTML代在Servlet中,可以使用JSP页面来生成响应的HTML代码。例如,可以使用JSP的include标签来包含公共的HTML代码,然后在需要动态生成的地方使用JSP表达式。

例如,可以在注册成功后使用JSP页面生成一条提示信息:

  pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ include file="header.jsp" %>

<h1>注册成功</h1>
<p>感谢您的注册,您现在可以<a href="/login">登陆</a>了。</p>

<%@ include file="footer.jsp" %>

上面写了部分功能,关于将数据存储在文件中,可以使用xml或者json方式,这两种方式有key-value形式,对应现有的关系型数据库。
代码:


public class MainActivity extends AppCompatActivity {

private EditText edit;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    edit = findViewById(R.id.edit);
    Button btn2 = findViewById(R.id.button2);
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String inputText = load(); //用字符串转读取到的内容
            if(!TextUtils.isEmpty(inputText)){ //判断内容是否为空 
                edit.setText(inputText); //把内容用输入框显示
                edit.setSelection(inputText.length()); //将输入光标移到到文本的最后,以便继续输入
                Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show(); // 弹出读取的内容
            }

        }
    });

}

public String load(){
    FileInputStream in = null;
    BufferedReader reader = null;
    StringBuilder sb = new StringBuilder();  //创建一个StringBuilder对象
    try {
        in = openFileInput("data"); //得到你要读取的文件名
        reader = new BufferedReader(new InputStreamReader(in)); //读取文件内容
        String line ="";
        while ((line = reader.readLine()) !=null){
            sb.append(line); //将读取到的内容放到StringBuilder对象中
        }
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        if(reader != null){
            try{
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return  sb.toString(); //返回读取的内容
}
}


==============================================



写入文件:
public class MainActivity extends AppCompatActivity {

private EditText edit;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    edit = findViewById(R.id.edit); //得到文本输入框的控件
    Button btn1 = findViewById(R.id.button); //得到保存按钮的控件
    //保存按钮的点击事件
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //获取edit中的数据
            String inputText = edit.getText().toString().trim();
            //调用保存数据方法
            save(inputText);
        }
    });
}


public void save(String  inputText){
    FileOutputStream out = null;
    BufferedWriter writer = null;
    try {
        out=openFileOutput("data", Context.MODE_PRIVATE);
        writer = new BufferedWriter(new OutputStreamWriter(out));
        writer.write(inputText);
    } catch (IOException e) {
        e.printStackTrace();
    }finally {

            try {
                if(writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

            }

  } 
}




提供参考,实例【JSP+Servlet+JavaBean实现用户注册登录】,链接:https://www.jianshu.com/p/9d0a657a45fa
【jsp+servlet+javabean实现简单的查询】,链接:https://www.cnblogs.com/cookies9/archive/2010/11/30/1892303.html

基于Jsp+Servlet+JavaBean的个人信息管理系统
https://blog.csdn.net/qwe1350239/article/details/52962873