设计一个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